# busy

An aggregate read was turned away; the server is computing as many as it allows (503).

## Meaning

Audit counts, rankings, the threat overview, the sign-in shape and the organization
snapshot are aggregate reads. Each replica runs a few at once (four by default) and
gives each five seconds; a read beyond that, or one that ran out of time, is refused
with `Retry-After`. Identical reads share one computation through the cache.

## Impact

A dashboard chart or overview tile shows no data until the retry. Sign-in is not
affected; the cap exists to keep the database connections sign-in needs. Frequent
occurrences mean the audit table is slow to aggregate.

## Diagnosis

1. Check database latency and load, and the size of the window asked for.
2. Many administrators with dashboards open at once multiply the reads; a slow
   database turns them into timeouts.

## Mitigation

- As a dashboard user or admin-API caller: wait for `Retry-After`, then retry; ask
  for a shorter window or a coarser bucket.
- As an operator: investigate database performance and audit retention.

## Escalation

Escalate when small windows stay busy with an idle database. Open an issue with
request ids, the query parameters, database metrics and the server version.

---

[Problem code runbooks](https://www.nauthera.io/docs/v1/runbooks/problems) · Generated from [`internal/runbook/problems.yaml`](https://github.com/nauthera/nauthera-server/blob/main/internal/runbook/problems.yaml) in nauthera-server.
