wtf( )unctionsystem design, drawn
← all problemsAPI DesignEasy

"Something went wrong"

The API returns errors as a bare string. Integrators are parsing that string to decide what to do, which means every wording change breaks somebody's client, and support tickets arrive with no way to trace what actually happened.

The status code tells the client the category. Everything else it needs — which field, which of several possible causes, and which request this was — has nowhere to live.

Replace the error body with something a client can act on.
Components — tap one, then tap a slot on the diagram
!Integrators are string-matching on error text, so a wording change breaks their clients.

Outside every boundary: API, Client (parsing prose; FAILED: string matching), an empty slot for the machine-readable why Connections: Client calls API (step 1) API calls machine-readable why — the failure (step 2) machine-readable why calls Client — actionable (step 3)

API
Clientparsing prosestring matching