Error reference
All RFC 9457 problem types emitted by the Happklaar API. Click any row to read the cause and remedy.
| Status | Slug | Title | Retryable | Affected modules |
|---|---|---|---|---|
| 401 | invalid-credentials | That didn't match | No | auth |
| 404 | invite-not-found | Invite not found | No | auth |
| 404 | not-found | Not found | No | auth |
| 404 | oauth-link-pending-not-found | No OAuth-link pending state in session | No | auth |
| 410 | invite-revoked | Invite revoked | No | auth |
| 422 | email-verification-cooldown | Verification email recently sent — please wait before resending | No | auth |
| 422 | password-reset-token-invalid | Password reset token is invalid or expired | No | auth |
| 422 | recipe-import-failed | We could not import that recipe | No | recipe |
:::info About RFC 9457
Every error response from the Happklaar API uses the application/problem+json content type, as defined in RFC 9457. There is one canonical error envelope shape across every endpoint, carrying five core fields:
type— stable URI identifier for the problem type; never changes between API versions.title— short human-readable summary; localized (NL canonical, EN fallback) viaAccept-Language.status— HTTP status code; matches the response's actual status.detail— longer human-readable explanation; localized, may include request context.instance— request URI (not absolute) — correlates the error to a specific call.
Type URIs are apex (https://api.happklaar.nl/problems/{slug}) — not per-version. A consumer reading a v1 error and a v2 error for the same problem type sees the same type URI; error-code stability survives version bumps.
The title and detail fields are localized according to the Accept-Language request header; NL is canonical, EN is the fallback. Type URIs, code extension values, and field names inside errors are always English and never translated.
:::