error object.
Error response shape
string
required
Machine-readable error code. Use this field for programmatic error handling.
string
required
Human-readable description of the error. Do not rely on this string in code — it may change. Use
code instead.string
required
Unique correlation ID for this request. Include this value when contacting support — it links to logs, audit events, and the outbound
X-Request-Id response header.object
Optional map of field-level error messages. Present on validation errors to pinpoint which input field failed and why.
HTTP status codes
Error codes
Abstention is not a failure
Causeloop’s engine never guesses to fill in a gap. Several codes above, plus two non-error response shapes, are the mechanism:- Classification (extraction, root-cause, criticality) returns
abstained— either as the409error code above when the operation can’t proceed at all, or as astatus: "abstained"field in an otherwise-200response (e.g.GET /issues/{id}/root-cause) alongside a pointer into/review-queue. A human resolution appends an event and unblocks dependent computation; it is never silently skipped. - Hazard models (
GET /patterns/{id}/hazardand everything derived from it — forecasts, predictions, financials) return404 not_fittedwith areasonwhen there isn’t enough signal to fit. The frontend renders the reason, never a fake curve. - Reports: every numeral in a generated narrative must resolve to the run’s facts JSON. A mismatch fails the run outright with
report_facts_mismatchrather than shipping a wrong number. - Replay:
POST /engine/runs/{id}/replaynever errors on divergence. It always returns200with{identical: bool, diff_summary}—identical: falseis a real (alarmed) outcome, not an exception. - Ingest: an engine-eligible issue with no
narrativeis accepted (202) withengine_status: "blocked_no_narrative"in the ack’sengine_status_summary, not rejected and not silently clustered without evidence.
Validation errors
When request validation fails (status400, code validation_error), the details object maps field names to error messages:
details is the dot-path to the invalid field in the request body (e.g. connector.config.api_key).
Handling errors
5xx errors and retries
500 Internal Server Error responses indicate an unexpected server-side failure. They are safe to retry with exponential backoff. Always include the trace_id from the error body if you report the issue to support.