Errores y límites
Qué responde Restoman cuando no puede: los errores de su API, de OAuth, del MCP y de los agentes, y sus límites.
Toda respuesta trae X-Request-Id, y todo error es JSON. Ese id es lo que hay que mandar a soporte si algo falla.
La API
Un error de la API es { "type", "code", "requestId" }: type dice la clase (unauthorized, forbidden, not_found, validation, rate_limited, unavailable…) y code, cuando lo hay, el motivo exacto. Un 429 trae Retry-After y retryAfter en segundos.
OAuth
El servidor de autorización responde los errores de OAuth (RFC 6749): { "error", "error_description" }, como invalid_grant o invalid_request. Su límite por dirección responde 429 con { "code": "RATE_LIMITED", "message", "retryAfter" } y Retry-After.
El MCP de Restoman
| Respuesta | Qué significa |
|---|---|
401 con WWW-Authenticate |
Sin token, o vencido o revocado: volvé a OAuth |
403 con insufficient_scope |
Al token le falta el permiso de esa herramienta: la persona vuelve a conectar |
Un resultado con isError y un código |
El rol de la persona o el estado del negocio no lo permiten (MISSING_PERMISSION, LOCATION_NOT_ASSIGNED, CEILING_…) |
429 con Retry-After |
Más de 120 llamadas por minuto o 2.000 por hora, por persona y agente |
JSON-RPC -32602 |
Argumentos que no son los de la herramienta |
Un error de una herramienta hay que decirlo como es y mandar a la persona al panel: nunca buscar otro camino.
Los MCP y agentes públicos
- Un
POSTde más de 16 KB responde413, y unOriginde otro sitio,403. - JSON-RPC:
-32700es un JSON que no se entiende,-32600un mensaje que no es JSON-RPC 2.0,-32601un método que no existe y-32602argumentos equivocados. - Un slug o una guía que no existen responden un resultado con
isError, no un error del protocolo. - Los agentes A2A responden los códigos de A2A:
-32001para una tarea (no guardan ninguna),-32003para avisos push,-32004para transmitir,-32005para archivos,-32007para la tarjeta extendida y-32009para una versión que no hablan.