Browse docs
What a real problem+json error code reference entry looks like#
Every error the API returns follows RFC 9457's problem+json shape: a type URI identifying the error kind, a title, a status matching the HTTP status code, a detail sentence, and SkedCast's own extension members — code (the stable, catalog-indexed identifier), category, severity, and, where relevant, action (a recovery hint like reconnect, upgrade, or retry) and correlationId for support requests.
The type URI always resolves to a real page at https://skedcast.com/errors/{code} — satisfying RFC 9457 §3.1.1's guidance that a problem type SHOULD provide human-readable documentation, rather than being a dead reference URI the way many problem+json implementations leave it.
A real problem+json response#
{
"type": "https://skedcast.com/errors/token_expired",
"title": "Token expired",
"status": 401,
"detail": "Your session has expired. Please sign in again.",
"code": "token_expired",
"category": "auth",
"severity": "warning",
"action": "login",
"meta": { "correlationId": "c7f1e2a0-..." }
}Where each field comes from#
FAQ
- Does SkedCast's API actually return RFC 9457 problem+json errors?
- Yes — every error response goes through one global exception filter that returns application/problem+json with a resolvable type URI, not a bespoke error shape per endpoint.
- What does the action field on an error mean?
- A recovery hint a client can act on programmatically — for example login, reconnect, upgrade, verify-email, mfa, retry, or contact-support — derived from the same catalog entry as the error's documentation.
- Can an error code exist in the API but not in this catalog?
- No for public-facing errors — a CI coverage test fails the build if the API throws a code absent from the catalog, so the catalog and the API's real error surface cannot drift apart.
- Why are some error codes missing from this JSON even though they're real errors?
- Because they are operator-console-only (internal audience) — reachable only from the IP-gated staff console, never by a customer or API key — and are excluded from the public catalog at the source to avoid disclosing the internal admin surface.