Files
LWLT-AIBOT/.project-docs/50-evidence/topics/20260903-dashboard-refresh-no-data-b4e82f1a__dashboard-query-timeout.md
T

2.2 KiB

Evidence: Local dashboard candidate-query timeout

Scope

  • Local signed-in http://127.0.0.1:8786/operations-dashboard reads only.
  • Current 8786 process, health endpoints, HTTP response metadata, and privacy-safe structured diagnostics.
  • Active dashboard query source at task base 69ea6d2; read-only comparison confirmed current origin/main f52d9d7 is unchanged in this query area.

Findings

  • /health/live and /health/ready passed; PostgreSQL and required migration 018_agentbus_account_workers were ready.
  • The default 30-day dashboard GET returned HTTP 503 after about 8.9 seconds with operations_dashboard_query_timeout.
  • The matching service diagnostic reported PostgreSQL cancellation code 57014; no operations_dashboard.query.completed event was emitted for the candidates stage.
  • The same authenticated page completed a seven-day GET in about 0.7 seconds. The candidate, actor, and page-detail stages completed, and the aggregate response contained 13 tasks.
  • Source inspection showed that the candidate projection selected complete t.operation JSON for every matching row before slicing the 20-row page. Full detail was therefore read for the entire range rather than only the current page.

Conclusion

The visible empty board was a timeout presentation, not an empty database or authorization failure. Candidate payload amplification exhausted the five-second SQL statement timeout as the date range grew.

Evidence Safety

  • No .env, credentials, cookies, browser storage, plaintext instructions, customer data, task IDs, or operation payloads were read or recorded.
  • Runtime evidence is limited to health state, HTTP/error codes, durations, query-stage names, and aggregate counts.

Confidence

  • High for the reproduced failure and failing query stage.
  • Repository verification can prove the candidate projection no longer selects full operations, but post-change 30-day runtime timing requires a separately authorized service rollout/restart.

Last Verified

2026-09-03

Stale Trigger

Re-run the authenticated 30-day request after this feature is integrated and the local service is restarted from that revision, or whenever the dashboard query plan/projection changes again.