Errors and request IDs

Handle the shared error envelope and use request IDs for tracing and support.

API errors use one envelope:

{
  "detail": {
    "message": "OpenLineage request body is too large.",
    "code": "openlineage_body_too_large",
    "hint": null,
    "request_id": "4acfd42a-2c02-4ed7-8f74-95196664988e"
  }
}
FieldMeaning
messageHuman-readable explanation.
codeStable machine-oriented error category.
hintOptional safe next step or receipt reference.
request_idIdentifier for logs and support.

Every response echoes an x-request-id header. You may supply your own bounded x-request-id; otherwise Embrasure creates one.

curl --header "x-request-id: deploy-842-lineage" ...

Treat 400 and 422 as request problems, 401 as missing or invalid authentication, 403 as scope or workspace authorization failure, 409 as an idempotency or provider-scope conflict, 413 as a size limit, and 5xx as a service failure that may be retried with the same idempotency key.