Troubleshooting
Send requests to https://www.skavio.eu/processing/mcp with the header Accept: application/json, text/event-stream and Authorization: Bearer <credential>.
HTTP-level errors
| Status | error_code | Cause and fix |
|---|---|---|
400 | invalid_arguments | The JSON-RPC body or headers are malformed. |
401 | unauthorized | Missing, unknown, expired or revoked credential. Create or renew it. |
403 | origin_denied | Origin/Host not allowed. Omit a browser Origin. |
403 | binding_inactive / reason (binding_expired, binding_revoked, invalid_expiry) | The binding is no longer active. Ask Skavio to renew or reissue. |
403 | signed_delivery_unavailable | The binding requires signed delivery but has no valid key. Operator action. |
406 | Not Acceptable | Add Accept: application/json, text/event-stream. |
Tool error codes
Read tools and files:
| Code | Meaning |
|---|---|
permission_denied | Your role or rights block does not allow the operation. |
operation_denied | The operation is not in the granted rights. |
invalid_arguments | A tool argument failed schema validation. |
invalid_upload_id | Upload id is not a valid identifier. |
upload_rejected, upload_size_limit, invalid_document_encoding | The upload was rejected; check size, encoding and format. |
input_file_unavailable, input_file_changed | A configured local input is missing or changed; re-stage it. |
upload_reconciliation_required | An upload outcome is uncertain; do not re-upload with a new key. |
local_storage_limit, intent_capacity | A local retention/capacity ceiling was reached; run skavio_cleanup. |
result_not_ready, download_size_limit, invalid_download_size | The result is not ready or its size is outside the allowed bound. |
result_path_denied, storage_redirect_denied, storage_proxy_pinning_unverified, unexpected_redirect, too_many_redirects | A download target failed the SSRF/safety checks; do not retry blindly. |
Paid work:
| Code | Meaning |
|---|---|
paid_execution_disabled | Paid admission is not enabled on this deployment. |
paid_authorization_missing | No verified cost evidence for this operation. |
operation_not_sellable | No verified shared price for this operation. |
margin_outside_authorized_range | The price would leave the 25–40% margin band. |
credit_cap_exceeded, per_job_limit, adapter_budget_exceeded | The job would exceed a credit ceiling. Buy credits or lower the workload. |
insufficient_credits | The live wallet balance is too low. Buy credits in the dashboard. |
idempotency_conflict | Same key, different spec. Use a new key for a new request. |
unknown_idempotency_key | Retry only the exact original key/spec, or start a new key. |
idempotency_reconciliation_required, idempotency_guarantee_unverified | The outcome is unknown; do not resubmit, follow reconciliation. |
upstream_uncertain | A network/upstream error made the outcome unknown. Retry the same key. |
adapter_rate_limited, rate_limited | You hit a rate ceiling. Back off and retry. |
upstream_accounting_violation, invalid_upstream_response | A safety invariant tripped; the server fails closed. Contact Skavio. |
workflow_resolution_not_supported | Workflow templates are not accepted here. |
Common problems
"Client must accept application/json" — set Accept: application/json, text/event-stream.
Everything returns 401 — the credential is wrong, expired or revoked. Create a new one in the dashboard and update your client.
A paid submit is refused — read the error_code. Cost/policy refusals are intentional and safe; credit refusals mean you need more credits or a smaller job.
A job seems stuck — poll skavio_get_job. The server reconciles pending jobs and marks genuinely ambiguous admissions for operator reconciliation; it never resubmits an ambiguous job.
I restarted my client — state, keys and reservations are durable. Retry the same idempotency_key; you will get the same job, not a second charge.
If a code is not listed, or you suspect incorrect accounting, contact Skavio and include the request_id from the error. Never send credentials in a support request.