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 ErrorInvalid JSON was received by the server. An error occurred on the server while parsing the JSON text.
-32600Invalid RequestThe JSON sent is not a valid Request object according to JSON-RPC 2.0.
-32601Method Not FoundThe requested MCP method (e.g. tools/call) does not exist / is not available.
-32602Invalid ParamsInvalid tool arguments or missing required parameters.
-32603Internal ErrorInternal JSON-RPC error occurred during tool execution.
AUTH_REQUIREDAuthentication RequiredNo bearer token or API key provided, or token has expired.
SCOPE_UNAUTHORIZEDScope UnauthorizedThe token lacks the required permission scope to execute this tool.
INSUFFICIENT_FUNDSInsufficient Wallet FundsWallet balance is lower than the price of the requested asset.
PRICE_CEILING_EXCEEDEDPrice Ceiling ExceededThe asset price exceeded the caller's confirmMaxPriceINR safety guardrail.
RATE_LIMIT_EXCEEDEDRate Limit ExceededClient has exceeded requests per minute for their active tier.
ASSET_NOT_FOUNDAsset Not FoundThe requested asset identifier does not exist or has been archived.
DOWNLOAD_EXPIREDDownload URL ExpiredThe 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:spendorlibrary:download). - PRICE_CEILING_EXCEEDED: Check the asset's current price with
get_asset_detailsand raiseconfirmMaxPriceINRaccordingly.