Códigos de error
PAYMENT_FAILED
budgetSats.
TOKEN_EXPIRED
BUDGET_EXCEEDED
budgetSats en la sesión actual. Aumente el presupuesto o finalice la sesión.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Códigos de error semánticos de l402-kit para agentes y desarrolladores.
{
"error": "ERROR_CODE",
"code": 402,
"cause": "Human-readable explanation",
"action": "recommended_action",
"retry": false
}
{
"error": "PAYMENT_FAILED",
"code": 402,
"cause": "Insufficient balance in wallet",
"action": "increase_budget",
"retry": false
}
budgetSats.
{
"error": "TOKEN_EXPIRED",
"code": 402,
"cause": "Macaroon expiry timestamp exceeded",
"action": "request_new_invoice",
"retry": true
}
{
"error": "BUDGET_EXCEEDED",
"code": 402,
"cause": "Session budget of {n} sats exhausted",
"action": "stop_or_increase_budget",
"retry": false
}
budgetSats en la sesión actual. Aumente el presupuesto o finalice la sesión.
{
"error": "INVALID_MACAROON",
"code": 402,
"cause": "Macaroon is not valid base64 JSON",
"action": "request_new_invoice",
"retry": true
}
{
"error": "TOKEN_ALREADY_USED",
"code": 401,
"cause": "Preimage was already presented — replay attack blocked",
"action": "do_not_retry",
"retry": false
}
{
"error": "NODE_UNREACHABLE",
"code": 503,
"cause": "Lightning node did not respond within timeout",
"action": "retry_with_backoff",
"retry": true
}
{
"error": "INVOICE_EXPIRED",
"code": 402,
"cause": "BOLT11 invoice expired before payment was submitted",
"action": "request_new_invoice",
"retry": true
}
{
"error": "WRONG_PREIMAGE",
"code": 402,
"cause": "SHA256(preimage) does not match paymentHash in macaroon",
"action": "check_wallet_payment",
"retry": false
}
import { l402 } from "l402-kit/agent";
try {
const res = await client.fetch("https://api.example.com/data");
} catch (err: any) {
if (err.error === "BUDGET_EXCEEDED") {
// stop and report to user
} else if (err.retry === true) {
// safe to retry after short delay
await sleep(1000);
const res = await client.fetch("https://api.example.com/data");
}
}