When a request fails, Flowyte returns an RFC 9457
problem+json body with the application/problem+json content type. The HTTP status is the
source of truth; the body adds machine-readable detail.
The problem shape
Branch on status and code, not on detail or title — those wording may change.
Common statuses
Reserved endpoints return 403
Some endpoints in the contract are reserved (planned ahead of release). Calling one returns
403, not 404 — the route exists but isn’t open to you yet. If a correctly-authenticated,
correctly-scoped call returns 403, check whether the endpoint is reserved before assuming a
permissions bug. The same 403 also covers genuine scope and cross-org denials.
Named problems
A few problems carry a specific code worth handling:
Optimistic concurrency (409 on PATCH /agents/{id})
Agent autosave uses an If-Match version. If you send a stale version, the server responds
409 with the current agent state and version in the body. Rebase: refetch, re-apply your
pending edits, and retry with the new version.
For status codes per endpoint, see the API Reference.