Files
wyndham-ARR/.project-docs/50-evidence/topics/2026-08-03-daily-monthly-worker-pending.md
2026-08-03 16:08:14 +08:00

43 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Daily commit waiting for monthly worker
## User question
The operator reported that a Daily Report upload appeared complete but the monthly report did not update.
## Read-only checks
- Port 8766 returned `ready`; the active process list showed the ARR Web service but no independent
`monthly_reports.worker` / `arr-monthly-worker` process.
- The newest `opera_daily` processing run is run 39. It finished at 2026-08-03 10:49:01 +08 with `accepted` status and
no failure code.
- Finance daily version 14 is `active` for business date 2026-08-01 and contains 111 retained rows. Its retained
`ARRIVAL` scope is 2026-08-01, so the automatic worker would derive an August 2026 monthly request.
- Outbox event 20 (`processing-run:39:accepted`, `arr.daily_version_committed`) is still `pending`, has zero publish
attempts and no error code, and has been available since 2026-08-03 10:49:01 +08.
- `reporting.monthly_runs` contains only July versions. July V04 is active with `as_of_date=2026-07-27`; no August
version is present.
- A second read-only check found a backlog of five daily-commit events, IDs 1620, all `pending` with zero attempts
and no error. Events 1619 derive the July request through 2026-07-27; event 20 derives the August request through
2026-08-01. Recovery should let the worker consume them in order and retain its idempotent publication behavior.
- The controlled database file, Python runtime, Node binary and artifact-tool module pass preflight checks. The focused
monthly suite passes 27 tests with two optional skips. No worker was started and no monthly publication or database
write was performed.
- The monthly page polls every four seconds only while its tab is visible. That can delay page display, but it cannot
explain the missing database row because event 20 has not been consumed.
## Recovery
- The user authorized recovery. A detached `arr2-monthly-worker` Screen session was started with the controlled
`booking_test` configuration and the verified Node/artifact-tool paths.
- The worker consumed outbox events 1520 in order. Each is now `published` with one attempt and no error code.
- July V05 is `active` at `as_of_date=2026-07-27` with 987 rows; older July V04 is `superseded`. August V01 is
`active` at `as_of_date=2026-08-01` with 111 rows.
- The August registered workbook/result pair exists under the controlled project output, the XLSX passes ZIP
integrity, the result JSON reports `success`, and Web `/healthz` remains `ready`.
## Conclusion
The Daily Report was correct; the missing monthly update was caused by the absent worker process. The report is now
updated without re-uploading the source. The remaining operational gap is reboot-persistent supervision of the
detached worker, which is intentionally separate from this recovery and from the later logging work.