Reference
Error model
Stable envelope (JoyMuxErrorEnvelope):
{
"code": "client_identity_mismatch",
"message": "...",
"retryable": false,
"correlation_id": "corr_...",
"details": {}
}
Codes include: invalid_request, unsupported_protocol_version, client_not_registered, client_identity_mismatch, authorization_denied, session_not_found_or_not_visible, execution_not_found_or_not_visible, invalid_state_transition, idempotency_conflict, grant_expired, grant_revoked, payload_too_large, slow_consumer, daemon_not_ready, internal_error.
Mapping:
| Transport | Where |
|---|---|
| JSON-RPC | error.data |
| MCP | structured tool error / isError |
| HTTP | status + JSON body |
| CLI | human or --json |
Semantics must match across transports.