Known Issue: Compliance Dashboard Doesn't Auto-Refresh After Deposit Scheme Updates
Known Issue: Compliance Dashboard Doesn't Auto-Refresh After Deposit Scheme Updates
Version introduced: v0.1.357
Status: Known gap — fix recommended
Affected component: Compliance Dashboard · Deposits at Risk KPI
What's Happening
When an agent updates the deposit scheme or protection reference on a tenancy, the backend correctly fires a tenancy.updated event and the Inngest-powered compliance-auto-check worker re-evaluates compliance on the persistent layer. However, the compliance dashboard UI is not refreshed to reflect this updated state.
As a result:
- The Deposits at Risk KPI card may still show a tenancy as at-risk even after protection has been successfully logged.
- The dashboard UI only updates after either the nightly sweep at 2 AM or a manual Re-check / Re-check All action initiated by the agent.
- Agents have no immediate in-UI confirmation that the updated protection reference was received and evaluated.
Workaround
Until the fix is shipped, agents can manually trigger a compliance re-evaluation from the compliance dashboard:
- Navigate to Dashboard → Compliance.
- Locate the relevant tenancy row.
- Click the Re-check button on that row, or use Re-check All to refresh all tenancies at once.
- The compliance status and KPI cards will update immediately after the manual re-check completes.
Note: The underlying deposit protection data is saved correctly to the database as soon as the agent submits it. The gap is purely in UI feedback — no data is lost.
Root Cause
The compliance auto-check pipeline (compliance-auto-check.ts) listens for tenancy.created and tenancy.updated events and re-evaluates compliance at the Inngest (server) level. However, there is no client-side cache invalidation triggered after a deposit-related tenancy mutation. The dashboard therefore continues to render the cached (pre-update) compliance state until the next scheduled sweep.
Planned Fix
The recommended resolution involves two client-side changes only — no changes to the server-side compliance pipeline are needed:
1. Optimistic Cache Invalidation
After any tenancy mutation that modifies deposit-related fields (scheme, protection reference, protection date), the compliance cache should be optimistically invalidated client-side so that KPI cards clear stale counts immediately.
2. Compliance updated Toast Notification
Once the server-side re-check result is available, a toast notification should be shown to the agent:
✅ Compliance updated — 12 passing · 1 requires attention
This gives agents immediate, explicit confirmation that the protection reference was recorded and evaluated without requiring them to navigate to the compliance dashboard.
Affected Files
| File | Role |
|---|---|
src/app/dashboard/compliance/compliance-dashboard.tsx | Compliance dashboard UI, Re-check buttons, KPI cards |
compliance-auto-check.ts | Inngest worker — handles tenancy.created / tenancy.updated events |
Frequently Asked Questions
Is my deposit protection data actually saved when I submit it?
Yes. Data is written to the database immediately. The gap is UI-only — the dashboard display does not update until a manual re-check or the nightly sweep.
Will the nightly sweep fix the KPI automatically?
Yes. The nightly compliance sweep runs at 2 AM and will correct all KPI counts. If you need the dashboard to reflect the current state sooner, use the manual Re-check button.
Does this affect compliance reporting or audit logs?
No. The server-side compliance record is updated correctly by the tenancy.updated auto-check. Only the dashboard UI display is affected.