Errors

Platica's MCP server distinguishes two classes of error, aligned with the MCP spec:

ClassWhen it's returnedHow the client sees it
Tool execution errorThe tool ran but the result was a recoverable failure.tools/call returns { result: { isError: true, content: [...] } }. The model can read the message and retry.
Protocol error (JSON-RPC)The request is structurally invalid or untraversable.Standard JSON-RPC { error: { code, message } } response.

Execution errors (isError: true)

Every non-2xx HTTP response from the REST API becomes an execution error. content[0].text contains the raw body (typically JSON with code, error, details).

Common catalog

REST statusCauseHow to fix
400Invalid arguments.Read structuredContent.details or issues and fix the flagged fields.
400 Must specify a valid workspace...Multi-workspace API Key with workspace omitted.Pass workspace: "<id>" in the arguments.
401API Key missing, invalid, or disabled.Regenerate the Key in the Platica dashboard. Check the Authorization header.
402The workspace reached its credit limit.Check the plan or usage before repeating the tool.
403The API Key doesn't have access to the requested workspace/resource.Use a key with the right scope.
404Resource (client, agent, campaign, webhook, …) doesn't exist in that workspace.Confirm the ID. If the key is multi-workspace, try passing workspace.
409The resource is busy or has an identity/state conflict.Fetch it again; retry busy conversations with backoff.
422The resource exists but is in an incompatible state (e.g. agent without workspace).Inspect the error details.
500Backend internal error.Retry. If it persists, check the logs or contact support.
502 / 504Internal service failure or timeout.Fetch the chat or conversation before retrying; the operation may have completed.
503Service temporarily unavailable.Retry with backoff.

Example

{
  "jsonrpc": "2.0",
  "id": 7,
  "result": {
    "isError": true,
    "content": [
      {
        "type": "text",
        "text": "{\"code\":404,\"error\":\"Client not found\",\"details\":\"...\"}"
      }
    ],
    "structuredContent": {
      "code": 404,
      "error": "Client not found"
    }
  }
}

Protocol errors

These JSON-RPC codes are returned when the request can't even be executed:

CodeMeaning
-32001Unauthorized: missing or invalid Authorization header. Header missing or not in Bearer pl_key_... format.
-32000GET /mcp or DELETE /mcp was called. The server only accepts POST.
-32602Invalid arguments in the JSON-RPC call (not the tool — the JSON-RPC itself is malformed).
-32603Internal MCP server error (unhandled exception). Retry.

Argument validation

If a tool's arguments don't pass validation against the inputSchema, the server responds with an execution error (isError: true) that includes:

  • content[0].text: human-readable list of issues (path: message).
  • structuredContent.issues: array of { path, message, code } (Zod format).

In send_chat_message, delay and scheduleAt are mutually exclusive. Sending both produces a 400 validation error; fix the arguments before retrying the tool.

This gives the model enough context to retry with corrected arguments in the same turn.