Summary
The ASSIGN action updates the assignee column on the parent eg_wf_processinstance_v2 row but never inserts rows into eg_wf_assignee_v2. Any consumer that reads assignees from the join table — including /egov-wf/process/_search responses used for re-assignment and downstream auto-escalation — sees zero assignees for a complaint that was successfully assigned.
Reproduction (fresh, 2026-06-10, PGR on DIGIT 2.9-line stack)
- Citizen files a PGR complaint; GRO performs
ASSIGN with one assignee via /egov-workflow-v2/egov-wf/process/_transition (HTTP 200; the assignment is visible in the UI timeline).
- Inspect the DB:
SELECT pi.action,
(SELECT count(*) FROM eg_wf_assignee_v2 a WHERE a.processinstanceid = pi.id) AS join_rows
FROM eg_wf_processinstance_v2 pi
WHERE pi.businessid = '<SRID>' ORDER BY pi.createdtime;
-- APPLY | 0
-- ASSIGN | 0 ← expected 1
- A subsequent ProcessInstance search returns
assignes: [] for the latest instance.
Impact
- Re-assignment flows that depend on current assignees mis-resolve.
- Auto-escalation (CCRS
pgr-services scheduler) skips every assigned complaint with NO_ASSIGNEES — on a production Kenya deployment 100% of open complaints are unescalatable for this reason.
- Workaround we use in tests/demos: manual
INSERT INTO eg_wf_assignee_v2 (...) for the ASSIGN process instance — clearly not viable for production.
References
Summary
The
ASSIGNaction updates theassigneecolumn on the parenteg_wf_processinstance_v2row but never inserts rows intoeg_wf_assignee_v2. Any consumer that reads assignees from the join table — including/egov-wf/process/_searchresponses used for re-assignment and downstream auto-escalation — sees zero assignees for a complaint that was successfully assigned.Reproduction (fresh, 2026-06-10, PGR on DIGIT 2.9-line stack)
ASSIGNwith one assignee via/egov-workflow-v2/egov-wf/process/_transition(HTTP 200; the assignment is visible in the UI timeline).assignes: []for the latest instance.Impact
pgr-servicesscheduler) skips every assigned complaint withNO_ASSIGNEES— on a production Kenya deployment 100% of open complaints are unescalatable for this reason.INSERT INTO eg_wf_assignee_v2 (...)for the ASSIGN process instance — clearly not viable for production.References