What this server records when something fails, and where it goes.
Record internal server faults
Keep a durable record of unexpected internal faults
- Type
- boolean
- Default
false
Details
Keeps a durable record of unexpected internal faults so a failure can be diagnosed after it happened rather than only while it is happening. Routine client rejections — a bad grant, a wrong password, an expired code — are correct behaviour and are never recorded, so every entry is a defect. Off by default; with it off nothing is written and the /admin/api/errors paths are not served at all.
Retention window (days)
How long a recorded fault is kept
- Type
- number (days)
- Default
30- Requires
errorStore.enabled
Details
How long a recorded fault is kept. The window runs from when the fault was last seen, not when it was first seen, so a fault that is still happening does not age out mid-life.
Maximum distinct faults retained
How many distinct faults are kept at once
- Type
- number (faults)
- Default
10000- Requires
errorStore.enabled
Details
How many distinct faults are kept. At the limit the least recently seen fault is evicted — never the oldest by creation, which would discard a long-running problem in favour of one that happened once this morning.
Occurrences kept per fault
Full occurrences retained per distinct fault
- Type
- number (occurrences)
- Default
10- Requires
errorStore.enabled
Details
How many full occurrences are retained for each distinct fault: the earliest, plus the most recent ones. The occurrence count stays exact however many are discarded — this bounds the detail kept, never the tally.
Pending write queue depth
How many records may await writing
- Type
- number (records)
- Default
500- Requires
errorStore.enabled
Details
How many records may await writing. Recording never delays a response, so faults are queued rather than written inline — which makes this also the loss bound: an abruptly killed process can lose at most this many records, and a full queue counts what it could not accept so an operator can see that recording fell behind.
Caller address detail
How much of the caller address a record keeps
- Type
- enum
- Default
"anonymized"- Options
- omitted, anonymized, full
- Requires
errorStore.enabled
Details
How much of the caller’s network address a record keeps, because an address is personal data. "omitted" stores none and says so; "anonymized" stores a value that cannot be reversed to the address but is still the same for two requests from one origin, so a single misbehaving deployment is still identifiable; "full" stores the address. Defaults to anonymized.
Report recorded faults to Sentry
Also send every recorded fault to a Sentry project
- Type
- boolean
- Default
false- Requires
errorStore.enabled
Details
Sends every fault the error store records to an external Sentry project, so a failure raises an alert instead of waiting to be found here. This is an additional destination, never an alternative: the fault is recorded locally first and the outbound event is built from that record, which is why this cannot be switched on unless the error store is. Only the endpoint, the kind of failure and the reference are sent — never a request URL, header, cookie, body, or any end-user identity. Off by default; requires the ingestion credential below. Applied at startup.