Errors#
{
"success": false,
"code": "INSUFFICIENT_CREDITS",
"error": "Not enough available credits for the maximum cost"
}| HTTP | Code / condition | What to do |
|---|---|---|
| 202 | OPERATION_PENDING | An admitted request is not complete yet. Poll the operation (Retry-After) before creating new work. |
| 400 | BAD_REQUEST | Correct invalid URLs, unsupported options or limits. |
| 401 | UNAUTHORIZED | Check the key or token, expiry and revocation. |
| 402 | INSUFFICIENT_CREDITS | Provide enough available credits for the reserved maximum. |
| 403 | FORBIDDEN | Check granted scopes and session-only access requirements. |
| 403 | DESTINATION_BLOCKED | Luni does not fetch IP lookup, IP echo or request-inspection services, including redirects to them. |
| 404 | NOT_FOUND | Check the route, source or owned operation ID. |
| 409 | CONFLICT / stale execution | Do not reuse a key for changed input; inspect the current operation. |
| 409 | OPERATION_CANCELLED | The operation was cancelled. Start new work with a new Idempotency-Key. |
| 410 | RESULT_EXPIRED | Request new collection with a new identity if needed. |
| 413 | PAYLOAD_TOO_LARGE | Keep the request body under 100 KB. |
| 424 | SERVICE_UNAVAILABLE | The source could not provide a useful result; inspect the operation. |
| 429 | RATE_LIMIT_EXCEEDED | Respect Retry-After and reduce outstanding work. |
| 501 | FEATURE_UNAVAILABLE | The endpoint or required service is not enabled. |
An error can include operationId when work was already admitted. Keep it for inspection. A feature rejected before admission has no new operation or reserved budget. MCP execution failures carry a structured error and isError; protocol errors are separate from source failures.
