Error Codes
Every error includes three things: what was attempted, what went wrong, and what to do instead. Fuzzy matching suggests corrections for typos.
TABLE_NOT_FOUND404Table 'x' not found. Did you mean 'y'? (also returned 403 on a WebSocket table-room ownership mismatch)
Fix: Call hypertab_list_tables to see available tables.
COLUMN_NOT_FOUND404Column 'x' not found on table 'y'. A fuzzy 'did you mean' suggestion is included.
Fix: Call hypertab_get_table_schema to see available columns.
VALIDATION_ERROR400Generic input validation failure. Also returned for an unknown filter operator, with suggested_op and valid_ops in details.
Fix: Check the parameter types and constraints. Filter ops must be one of the 15 supported operators.
WORKSPACE_SELECTOR_CONFLICT400Realtime ticket workspace selectors contain different workspace IDs or slugs.
Fix: Send one workspace selector, or use the same value in every workspace header and body field.
CONFIRMATION_REQUIRED400A destructive operation needs confirm: true (soft delete, recoverable for 30 days).
Fix: Add confirm: true to the arguments.
ROW_LIMIT_EXCEEDED403Plan record limit reached (current and limit are in details).
Fix: Delete unused records or export and move data. Paid capacity is not available in the public beta.
TABLE_LIMIT_EXCEEDED403Plan table limit reached (current and limit are in details).
Fix: Delete unused Tables. Paid capacity is not available in the public beta.
RATE_LIMIT_EXCEEDED429Per-minute request rate limit reached.
Fix: Reduce the request rate and retry after the number of seconds in the response suggestion.
RATE_LIMITED429Webhook request throttled (per-IP or per-source bucket).
Fix: Back off and retry. A Retry-After header is set on the response.
UNAUTHORIZED401Missing or invalid API key/JWT, or the short-lived WebSocket ticket is invalid, expired, or already used.
Fix: Use Authorization: Bearer for HTTPS requests. Request a fresh /ws/tickets grant before reconnecting.
FORBIDDEN403Authenticated but lacking permission (e.g. an admin-only endpoint).
Fix: Use a credential with the required permissions.
SCOPE_DENIED403The API key lacks the required capability scope for the route (required_scopes and current_scopes in details).
Fix: Create an API key that includes the required scope.
ROLE_DENIED403The key has the scope, but workspace role policy forbids the action.
Fix: Ask a workspace owner or admin to perform this action or change your role.
SURFACE_TOKEN_TRANSPORT_DENIED403A retired hosted-surface compatibility credential was rejected on MCP or a Table WebSocket.
Fix: Use a normal scoped workspace credential for current Project and Table workflows.
AUTH_DB_TIMEOUT503The system-DB auth lookup exceeded its 10s bound (cold-start stall guard).
Fix: Retry the request shortly.
PAYLOAD_TOO_LARGE413A request body exceeds its route limit: 1 MiB ordinary API, 8 MiB CSV import, or 2 MiB public ingress.
Fix: Split the payload into smaller requests and retry.
INVALID_PAYLOAD400The webhook body is not valid JSON, or not an object or array of objects.
Fix: Send a JSON object or an array of JSON objects.
TOO_MANY_FIELDS400A webhook payload (or batch item) has more than 100 fields.
Fix: Reduce the payload to 100 fields or fewer per item.
BATCH_TOO_LARGE400A webhook array batch exceeds 1000 items per call.
Fix: Split the array into batches of 1000 or fewer items.
WEBHOOK_NOT_FOUND404No source resolves for the incoming webhook id.
Fix: Call hypertab_list_webhooks to see available webhooks.
WEBHOOK_ERROR500Webhook processing failed (mapped to a safe message; can also be 400/401/404 by pattern).
Fix: Review webhook logs for details.
ENDPOINT_ERROR500A webhook/API route (/e/:endpointId) runtime failure occurred.
Fix: Inspect metadata with hypertab_list_endpoint_logs, correct the cause, then submit a new authorized request. Stored-body replay is disabled.
NOT_FOUND404The route was not matched (404 handler), with an available-routes suggestion.
Fix: Check the path and method against the API reference.
UPGRADE_REQUIRED426A WebSocket endpoint was reached without an Upgrade: websocket header.
Fix: Open the endpoint as a WebSocket connection.
WORKSPACE_REALTIME_UNAVAILABLE503The WORKSPACE_ROOM Durable Object binding is not present in this environment.
Fix: Retry once workspace realtime is available in this environment.
TABLE_REALTIME_UNAVAILABLE503The TABLE_ROOM Durable Object binding is not present in this environment.
Fix: Retry once table realtime is available in this environment.
USAGE_RECORD_FAILED500Could not write the durable realtime usage event for a connection.
Fix: Retry the request.
QUEUE_MESSAGE_FAILEDnon-HTTPA queue consumer job failure code recorded in structured logs (non-HTTP; triggers a retry).
Fix: No action needed; the queue consumer retries automatically.
INTERNAL_ERROR500An unexpected server error occurred (a trace_id is included in details).
Fix: Retry the request. If it persists, contact support with the trace_id.
