An "error band" classifies a CircleError by how it should be handled at the
boundary of the app (primarily the tRPC layer). Each band maps deterministically
to a transport code so we don't have to write instanceof mapping logic by hand.
Internal: unexpected/unrecoverable failure. Maps to 500; message is NOT exposed.
BadRequest: invalid input. Maps to 400.
Unauthenticated: no (valid) user. Maps to 401.
Forbidden: authenticated but not allowed. Maps to 403.
NotFound: requested resource does not exist. Maps to 404.
Conflict: request conflicts with current state. Maps to 409.
Warning: log-and-continue classification; not converted to a failure response.
An "error band" classifies a
CircleErrorby how it should be handled at the boundary of the app (primarily the tRPC layer). Each band maps deterministically to a transport code so we don't have to writeinstanceofmapping logic by hand.Internal: unexpected/unrecoverable failure. Maps to 500; message is NOT exposed.BadRequest: invalid input. Maps to 400.Unauthenticated: no (valid) user. Maps to 401.Forbidden: authenticated but not allowed. Maps to 403.NotFound: requested resource does not exist. Maps to 404.Conflict: request conflicts with current state. Maps to 409.Warning: log-and-continue classification; not converted to a failure response.