Skip to main content

The error envelope

Every error uses one stable shape — and never leaks internal tenant IDs or backend error text:
Branch on code, not on message — messages can be reworded; codes are stable.

Request IDs

Every response carries X-Request-Id. Send your own (1–128 characters; first character alphanumeric, then A-Za-z0-9._:-) to correlate one request through the Conare edge and memory plane; otherwise Conare generates one. Quote it in any support request.

Status codes

Degradation instead of failure

Where a cheaper fallback exists, Conare degrades rather than erroring:
  • Deep recall on an exhausted legacy quota returns { answer: null, results: [...], deepUsed: false } — you still get ranked raw memories.
  • Suggestions has no meaningful shallow fallback, so exhaustion is a hard 402 (legacy quota plans: 429).
  • Malformed model output on suggestions returns { suggestions: [], raw: "<text>" } — treat raw as displayable fallback text.

Never metered

Session ingest, save, and shallow search/recall are never metered, on any plan. Spend alerts fire at 75/90/100% and the default is a hard stop — no surprise overages.