Admin actions swallow failures (console.error only): Resolve, Summarize, alert rules, Ack, Restart OP25; empty states lie on load failure #284

Open
opened 2026-10-25 21:31:55 -04:00 by logan · 1 comment
Owner

Found in a UX pass 2026-10-25. Searched open+closed: no duplicate.

Several actions catch the failure and only console.error, so the user sees the button re-enable and nothing else:

  • Incident Mark resolved / Regenerate summary: app/incidents/[id]/page.tsx:59,66. List-row Resolve: app/incidents/page.tsx:261.
  • Alerts: rule toggle/delete app/alerts/page.tsx:64,71; Acknowledge :195. Rule-list load failure :31 leaves rules=[], so the tab says "No alert rules configured." when the fetch actually failed.
  • Trip delete app/trips/page.tsx:183.
  • Node page Restart OP25: sendCommand (app/nodes/[id]/page.tsx:57-64) has try/finally and no catch: unhandled rejection, no feedback, no success toast either.
  • app/systems/page.tsx:1931 delete (see separate issue).

Related no-undo gaps: Resolve has no confirm and no reopen path anywhere (grep finds no status: "active" update); alert-rule Delete has no confirm.

Fix: one shared inline error/toast helper; surface the failure; add confirm for Resolve/rule delete and a Reopen for resolved incidents (or document that resolve is final).

Found in a UX pass 2026-10-25. Searched open+closed: no duplicate. Several actions catch the failure and only `console.error`, so the user sees the button re-enable and nothing else: - Incident **Mark resolved** / **Regenerate summary**: `app/incidents/[id]/page.tsx:59,66`. List-row **Resolve**: `app/incidents/page.tsx:261`. - Alerts: rule toggle/delete `app/alerts/page.tsx:64,71`; **Acknowledge** `:195`. Rule-list load failure `:31` leaves `rules=[]`, so the tab says "No alert rules configured." when the fetch actually failed. - Trip delete `app/trips/page.tsx:183`. - Node page **Restart OP25**: `sendCommand` (`app/nodes/[id]/page.tsx:57-64`) has try/finally and no catch: unhandled rejection, no feedback, no success toast either. - `app/systems/page.tsx:1931` delete (see separate issue). Related no-undo gaps: Resolve has no confirm and no reopen path anywhere (grep finds no `status: "active"` update); alert-rule Delete has no confirm. Fix: one shared inline error/toast helper; surface the failure; add confirm for Resolve/rule delete and a Reopen for resolved incidents (or document that resolve is final).
logan added the
type
bug
area/frontend
priority
p2
labels 2026-10-25 21:31:56 -04:00
Author
Owner

Fixed in PR for fix/284-286-error-feedback except Reopen: not built. Manual resolve via PUT /incidents/{id} never sets resolved_at (only the idle sweep does), so a Reopen needs a lifecycle decision first (clear resolved_at? let the 90-min sweep re-close it?) — belongs with drb-correlation-review. Resolve now confirms and says it can't be undone from the app. Leaving this open for that piece.

Fixed in PR for fix/284-286-error-feedback except **Reopen**: not built. Manual resolve via PUT /incidents/{id} never sets resolved_at (only the idle sweep does), so a Reopen needs a lifecycle decision first (clear resolved_at? let the 90-min sweep re-close it?) — belongs with drb-correlation-review. Resolve now confirms and says it can't be undone from the app. Leaving this open for that piece.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: logan/server-26#284