pub struct Slugs {Show 22 fields
pub validation_failed: ProblemDef,
pub captcha_failed: ProblemDef,
pub invalid_token: ProblemDef,
pub unknown_product: ProblemDef,
pub unauthenticated: ProblemDef,
pub admin_unauthorized: ProblemDef,
pub api_key_unauthorized: ProblemDef,
pub api_key_forbidden: ProblemDef,
pub admin_forbidden: ProblemDef,
pub sidecar_unauthorized: ProblemDef,
pub not_production_ready: ProblemDef,
pub request_too_large: ProblemDef,
pub rate_limited: ProblemDef,
pub allowance_exhausted: ProblemDef,
pub not_found: ProblemDef,
pub internal: ProblemDef,
pub mail_not_configured: ProblemDef,
pub not_ready: ProblemDef,
pub unknown_tenant: ProblemDef,
pub sidecar_unavailable: ProblemDef,
pub sidecar_contract_mismatch: ProblemDef,
pub tenant_degraded: ProblemDef,
}Expand description
Every slug core emits. Keep sorted by status.
Fields§
§validation_failed: ProblemDef400: a request body/query did not deserialize or failed validation.
captcha_failed: ProblemDef400: a captcha token was missing or rejected.
invalid_token: ProblemDef400: a signed link/token is malformed, tampered or expired.
unknown_product: ProblemDef400: the request named a resource outside the configured set (e.g. an unknown waitlist product).
unauthenticated: ProblemDef401: a credential was presented and did not verify, or none was presented where one is required. The one 401 for every unauthenticated caller — the auth-client bearer check, the tables API’s access decision and the modules reusing them all answer with it.
401: admin endpoints are disabled (ADMIN_TOKEN unset) or the
request carried no bearer token.
401: a developer API key was missing, malformed, unknown, revoked or failed its hash check — one uniform answer for all five, so a probe cannot tell which (issue #532).
api_key_forbidden: ProblemDef403: the presented API key is valid but lacks the scope the route requires (issue #532).
admin_forbidden: ProblemDef403: the presented admin token is wrong.
401: a request reached a sidecar-guarded route (/v1/* or
/__surface on a sidecar that requires it) without a valid gateway
token from the trusted host (issue #131).
not_production_ready: ProblemDef503: the deployment declares production but cannot satisfy the abuse controls its own routes declare, so the guarded routes are refused rather than served unprotected (issue #143).
request_too_large: ProblemDef413: the request body exceeded the 64 KiB /v1/* limit.
rate_limited: ProblemDef429: the rate limit for this IP or address was exceeded.
allowance_exhausted: ProblemDef429: a metered allowance is spent for the current period (issue
#588). A quota, not a throttle: the subject must wait for the
period to roll over, which Retry-After names.
not_found: ProblemDef404: no route matched.
internal: ProblemDef500: unhandled error; body carries no internals.
mail_not_configured: ProblemDef503: the mailer is not configured (no API key / unverified sending domain); forms should degrade to a direct address.
not_ready: ProblemDef503: readiness probe failed (/__ready): database missing, slow or
erroring.
unknown_tenant: ProblemDef404: the request’s host resolves to no tenant in the registry. A 404 and not a 403: which hosts are tenants is not a secret worth a distinguishable answer, and “no such tenant” is the truth (RECONCILIATION.md §6, TENANT-ROUTING.md §3).
503: a sidecar-mounted module could not be reached (ADR 0009). Only that prefix fails; every in-process module keeps serving.
sidecar_contract_mismatch: ProblemDef503: a sidecar answered with a different HARNESS_API than this
harness speaks, so its responses cannot be trusted.
tenant_degraded: ProblemDef503: the request’s tenant is in the registry but degraded — its
schema is behind or its database is unreachable, so serving it
would read a shape the code no longer expects
(RECONCILIATION.md §6, TENANT-ROUTING.md §3).