Summary
On Bomet (bometfeedbackhub.digit.org) a real citizen complaint does not trigger the Novu/Twilio lifecycle notification, because the deployed PGR image lacks the CCRS domain-event producer.
The notification stack itself is proven working end-to-end (see Evidence) — this is purely a PGR build/deploy gap.
Evidence (2026-05-16)
- Citizen UI "File a Complaint" correctly calls
POST /pgr-services/v2/request/_create → 200 (complaint PG-PGR-2026-05-16-048405).
- Deployed container
digit-pgr-services-1 = image registry.preview.egov.theflywheel.in/pgr-services-dev:latest.
- That image publishes only to the legacy
save-pgr-request topic (and its NotificationService errors there). It does not emit COMPLAINTS.WORKFLOW.* to complaints.domain.events — kafka high-watermark unchanged after the UI submit; bridge logs show no dispatch for the real complaint.
- A synthetic
COMPLAINTS.WORKFLOW.APPLY event published directly to complaints.domain.events delivered a real WhatsApp (Twilio status delivered) via the approved Content template — so bridge → Novu → Twilio + the seeded bindings/provider are all good.
Root cause
backend/pgr-services in this repo contains ComplaintDomainEventService (publishes the COMPLAINTS.WORKFLOW.<ACTION> envelope the novu-bridge consumes). Bomet runs the stock pgr-services-dev image, which does not include it.
Required action
Build and deploy the CCRS pgr-services image (the fork in this repo, with ComplaintDomainEventService) to Bomet — same upstream-source → rebuilt-image → redeploy pattern; do not patch in place. After deploy, verify a real UI complaint produces an offset on complaints.domain.events and the bridge dispatches it.
Related
This is a deployment-tracking issue, not a code change in the notif PRs.
Summary
On Bomet (
bometfeedbackhub.digit.org) a real citizen complaint does not trigger the Novu/Twilio lifecycle notification, because the deployed PGR image lacks the CCRS domain-event producer.The notification stack itself is proven working end-to-end (see Evidence) — this is purely a PGR build/deploy gap.
Evidence (2026-05-16)
POST /pgr-services/v2/request/_create→ 200 (complaintPG-PGR-2026-05-16-048405).digit-pgr-services-1= imageregistry.preview.egov.theflywheel.in/pgr-services-dev:latest.save-pgr-requesttopic (and itsNotificationServiceerrors there). It does not emitCOMPLAINTS.WORKFLOW.*tocomplaints.domain.events— kafka high-watermark unchanged after the UI submit; bridge logs show no dispatch for the real complaint.COMPLAINTS.WORKFLOW.APPLYevent published directly tocomplaints.domain.eventsdelivered a real WhatsApp (Twilio statusdelivered) via the approved Content template — so bridge → Novu → Twilio + the seeded bindings/provider are all good.Root cause
backend/pgr-servicesin this repo containsComplaintDomainEventService(publishes theCOMPLAINTS.WORKFLOW.<ACTION>envelope thenovu-bridgeconsumes). Bomet runs the stockpgr-services-devimage, which does not include it.Required action
Build and deploy the CCRS
pgr-servicesimage (the fork in this repo, withComplaintDomainEventService) to Bomet — same upstream-source → rebuilt-image → redeploy pattern; do not patch in place. After deploy, verify a real UI complaint produces an offset oncomplaints.domain.eventsand the bridge dispatches it.Related
This is a deployment-tracking issue, not a code change in the notif PRs.