---
schema: formation.doc/v0.1
kind: doc
visibility: public
canonical_url: https://topologyindex.com/docs/api/errors.md
errors:
  - code: malformed_syntax
    http_status: 400
  - code: invalid_credentials
    http_status: 401
  - code: insufficient_scope
    http_status: 403
  - code: plan_required
    http_status: 403
  - code: owner_approval_required
    http_status: 403
  - code: not_found
    http_status: 404
  - code: not_acceptable
    http_status: 406
  - code: conflict
    http_status: 409
  - code: idempotency_conflict
    http_status: 409
  - code: payload_too_large
    http_status: 413
  - code: unsupported_media_type
    http_status: 415
  - code: validation_failed
    http_status: 422
  - code: unsupported_version
    http_status: 422
  - code: unsupported_capability
    http_status: 422
  - code: quota_exceeded
    http_status: 429
  - code: internal_error
    http_status: 500
  - code: service_unavailable
    http_status: 503
path: /docs/api/errors.md
product_api_version: v1
schema_version: v0.1
title: Errors
---

# Errors

Every error is a `formation.error/v0.1` document with a fixed HTTP mapping. Retryable
errors carry `Retry-After`. Errors never contain secrets, source text, SQL or stack traces.

- `malformed_syntax` → 400: Malformed request
- `invalid_credentials` → 401: Invalid credentials
- `insufficient_scope` → 403: Insufficient scope
- `plan_required` → 403: Plan required
- `owner_approval_required` → 403: Owner approval required
- `not_found` → 404: Not found
- `not_acceptable` → 406: Not acceptable
- `conflict` → 409: Conflict
- `idempotency_conflict` → 409: Idempotency conflict
- `payload_too_large` → 413: Payload too large
- `unsupported_media_type` → 415: Unsupported media type
- `validation_failed` → 422: Validation failed
- `unsupported_version` → 422: Unsupported schema version
- `unsupported_capability` → 422: Unsupported capability
- `quota_exceeded` → 429: Quota exceeded
- `internal_error` → 500: Internal error
- `service_unavailable` → 503: Service unavailable
