wat CLI, and the skills plugin all hit the same API, so they all surface the same errors. With --json, a CLI failure is always the envelope { "success": false, "error": { "code": "...", "message": "..." } } plus the HTTP status.
Naming convention:
lower_snake codes come from the server (the API rejected the request). UPPER_CASE codes are synthesized by the CLI itself, before or instead of an API call.Booking validation and conflicts (server)
Authentication and permissions
When the server returns an error without a code of its own, the CLI derives one from the HTTP status:
unauthenticated (401), permission-denied (403), not-found (404), conflict (409), validation (422), internal (5xx), and network-error when no response arrived at all.