OriginChain docs
examples · errors · 18 / 19

18. 500 - internal server error

← Errors examples
what this error means

The server hit an unexpected condition. We log every 500 internally; the response body and the x-oc-trace-id response header both carry the trace id so support can find the exact request.

The body also carries a status_page URL - check there first to see if it's a known incident.

what triggers it

Any normally-valid request that surfaces a bug or unhandled internal condition.

POST /v1/tenants/:t/sql - any valid request, server side problem
curl -X POST "https://$OC_HOST/v1/tenants/$OC_TENANT/sql" \
  -H "Authorization: Bearer $OC_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"sql": "SELECT 1"}'
the canonical response body
{
  "error": "internal_error",
  "message": "unexpected backend error; please retry. If this persists, contact support with the trace id below.",
  "retry": true,
  "trace_id": "0b1c2d3e-4f50-6172-8390-a1b2c3d4e5f6",
  "status_page": "https://status.originchain.ai"
}
how to recover
  • Check status.originchain.ai. If there's an open incident, the ETA is there.
  • Retry with exponential backoff - 500s are often transient.
  • If it persists, open a support ticket and include the trace_id. With that id we can pull the exact request out of the logs in seconds.
  • Don't assume the write didn't happen - 500 means we don't know. Use a read or OCC retry to confirm state before re-issuing a non-idempotent write.
  • retry: true - with backoff.
common upstream causes
  • A new bug surfaced by a recent deploy.
  • Engine OOM on an unusually large query.
  • Underlying storage substrate I/O error.
  • A panic in an edge code path (logged, paged, fixed forward).
  • Internal dependency (control plane, billing service) momentarily down.