Admin

System Logs

← Back to Admin

The System Logs page (/admin/system-logs) shows the application's error log — every unhandled exception, every error-level log line, every backend-detected anomaly.

System Logs

What's logged

  • Unhandled exceptions in tRPC handlers
  • Database query failures
  • External API errors (Hospitable, Nuki, WhatsApp Cloud API)
  • Validation failures that escaped the boundary
  • app_errors rows written explicitly by application code (e.g. silent-skip notifications, condition-not-met logs)

Columns

  • Timestamp
  • Severity — error / warn / info
  • Source — module or service that emitted the log
  • Message — human-readable summary
  • Context — JSON blob with structured fields (reservation ID, task ID, user ID, stack trace)
  • Acknowledged — whether an admin has acknowledged this row

Filters

  • Severity
  • Source
  • Date range
  • Acknowledged / not

Acknowledging

Click Acknowledge on a row to mark it triaged. Acknowledged rows are hidden from the default view but remain in the database for audit.

⚠ Don't acknowledge as a way to make a problem go away — acknowledge as a record that you've seen and decided on it (filed an issue, fixed the bug, or determined it's noise).

Reading the log when there's been an incident

  1. Filter to the time window of the incident.
  2. Filter severity to error.
  3. Click into rows to see the structured context.
  4. Note the reservation IDs / task IDs that appear; cross-check with Activity Log for the surrounding context.

The 893-row debt

As of #174, the table had 893 unacknowledged rows — many of which were validation-error noise that shouldn't have been logged in the first place. That ticket added dedup + a rule that validation errors don't write to app_errors. After the cleanup, the table should stay in the low double-digits.

If you see a sudden spike (>50 new error rows in an hour), something is wrong — file an incident.


  • #174app_errors triage + dedup + don't-log-validation rule.
  • #180 — silent-skip events now logged to app_errors explicitly.
  • #100 — logging hygiene + PII redaction (developer-side, no operator-visible change).
Source: the FlatsBratislava operator manual.