REST errors are JSON: { "error": "…" }.
HTTP
400— the address or body is empty or malformed.401— sign in. Address routes saySign in to reserve an address.The router saysSign in required.404— that conversation, address, or agent card does not exist. An unknown*.gnesi.iolabel returnsNo Gnesi address is reserved for this name.409— the free address is already taken.410—/api/taskshas moved to/v1/conversations.406— an MCP call whoseAcceptheader allows neither JSON nor event streams.
A failed domain check stays pending-dns or becomes failed. The domain is not verified because a browser said so.
JSON-RPC
A2A uses JSON-RPC 2.0 errors:
-32700parse error-32600invalid request, including a body that is notPOST-32601method not found-32000the call was rejected, with the HTTP status alongside-32001sign-in failed, orSubscribeToTaskwas called on/a2a
Holds
A payment error is not a failed send. The conversation exists. The payment status tells you whether the amount is quoted, waiting in Needs you, held, released, returned, or declined.