DiagnosticsJSON-RPC 2.0 & HTTP

Error Codes & Diagnostics

Comprehensive dictionary of JSON-RPC 2.0 protocol errors and Krafto domain error codes with clear resolution strategies.

JSON-RPC 2.0 Error Envelope

When an MCP tool invocation fails, the server responds with a standard JSON-RPC 2.0 error envelope:

{
  "jsonrpc": "2.0",
  "id": "call_01",
  "error": {
    "code": -32602,
    "message": "Invalid params: confirmMaxPriceINR is required for wallet purchases.",
    "data": {
      "paramName": "confirmMaxPriceINR",
      "tool": "purchase_asset_with_wallet"
    }
  }
}

All Error Codes

-32700Parse Error

Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.

-32600Invalid Request

The JSON sent is not a valid Request object according to JSON-RPC 2.0.

-32601Method Not Found

The requested MCP method (e.g. tools/call) does not exist / is not available.

-32602Invalid Params

Invalid tool arguments or missing required parameters.

-32603Internal Error

Internal JSON-RPC error occurred during tool execution.

AUTH_REQUIREDAuthentication Required

No bearer token or API key provided, or token has expired.

SCOPE_UNAUTHORIZEDScope Unauthorized

The token lacks the required permission scope to execute this tool.

INSUFFICIENT_FUNDSInsufficient Wallet Funds

Wallet balance is lower than the price of the requested asset.

PRICE_CEILING_EXCEEDEDPrice Ceiling Exceeded

The asset price exceeded the caller's confirmMaxPriceINR safety guardrail.

RATE_LIMIT_EXCEEDEDRate Limit Exceeded

Client has exceeded requests per minute for their active tier.

ASSET_NOT_FOUNDAsset Not Found

The requested asset identifier does not exist or has been archived.

DOWNLOAD_EXPIREDDownload URL Expired

The 15-minute signed S3/R2 storage token has expired. Generate a new URL.

Troubleshooting Quick Tips

  • 401 AUTH_REQUIRED: Check that your MCP token has not expired and that the header is formatted as Authorization: Bearer <token>.
  • 403 SCOPE_UNAUTHORIZED: Generate a new token with the missing scope (e.g. wallet:spend or library:download).
  • PRICE_CEILING_EXCEEDED: Check the asset's current price with get_asset_details and raise confirmMaxPriceINR accordingly.