A stalled projection
This runbook helps you find and restart a projection or workflow that stopped applying events.
Symptom
Section titled “Symptom”- The steering report, the case catalog or an evaluation page shows old data.
- An evaluation or a proposal stays in one state and starts no new work.
/healthz/readyon port 8081 answers unhealthy for adeedboxcheck.
What shows it
Section titled “What shows it”deedbox_consumer_lag_secondsrises for one consumer and does not fall.deedbox_consumer_statusis not 0 for that consumer.deedbox_consumer_stalls_totalincreases.
-
Read the state of every consumer:
Terminal window deedbox status --provider postgres --connection "$CASEBOX_DB"A stalled consumer shows the event it stopped on and the error.
-
Read the server log for that consumer. The log names the exception and the event position.
-
When a bug in Casebox caused the stall, update the server to a release that fixes it. The consumer tries the event again after the restart.
-
When the event cannot be applied at all, skip it. The skip is audited:
Terminal window deedbox skip <consumer> <event id> --wait -
When the projection holds wrong data, rebuild it. The server keeps running and the page fills again:
Terminal window deedbox rebuild <projection> --wait
The projections are workspaces, work_items, steering_facts, case_catalog, evaluation_results, pattern_board and proposal_board. The workflows are evaluation_workflow and proposal_workflow.