Entry/Motif delete & remove failures are silent #106

Closed
opened 2026-07-15 19:52:54 +00:00 by claude-bot · 1 comment
Contributor

Severity: Medium · Confidence: High · Effort: S · Category: ui

Evidence

  • app/src/pages/Entries/EntryDetailPage.tsx:81-90 - handleDelete catch resets state, renders no error.
  • app/src/pages/Motifs/MotifDetailPage.tsx:86-104 - handleDelete/handleRemoveEntry/handleDeleteConnection surface no error; handleDelete has no loading/disabled state.

Problem
When a delete/remove request fails (network blip, permission change, stale row), the button returns to idle with zero explanation. The user can't tell whether it succeeded.

Impact
Ambiguous outcome on destructive actions; a user may assume a delete worked when it didn't, or retry blindly.

Fix
Set and render an error string on catch, matching TagManagement.tsx:38-43 / CategoryManagement.tsx:75-92.

Acceptance criteria

  • A failed delete/remove shows an error and doesn't look like success.

Filed from the 2026-07-15 codebase audit. Full report: docs/.internal/report-2026-07-15.md (gitignored).

**Severity:** Medium · **Confidence:** High · **Effort:** S · Category: ui **Evidence** - `app/src/pages/Entries/EntryDetailPage.tsx:81-90` - `handleDelete` catch resets state, renders no error. - `app/src/pages/Motifs/MotifDetailPage.tsx:86-104` - `handleDelete`/`handleRemoveEntry`/`handleDeleteConnection` surface no error; `handleDelete` has no loading/disabled state. **Problem** When a delete/remove request fails (network blip, permission change, stale row), the button returns to idle with zero explanation. The user can't tell whether it succeeded. **Impact** Ambiguous outcome on destructive actions; a user may assume a delete worked when it didn't, or retry blindly. **Fix** Set and render an `error` string on catch, matching TagManagement.tsx:38-43 / CategoryManagement.tsx:75-92. **Acceptance criteria** - [ ] A failed delete/remove shows an error and doesn't look like success. --- _Filed from the 2026-07-15 codebase audit. Full report: `docs/.internal/report-2026-07-15.md` (gitignored)._
Author
Contributor

Failed entry/motif delete, motif-entry remove, and connection delete now surface the error — inline on the entry page, a dismissible banner on the motif page — and the motif delete button shows its in-flight state. A failure no longer looks like success.

Shipped in 59e4fdd (test fix 6561f9a), part of the v7.3.0 milestone. Verified on dev (v7.2.1-3-g6561f9a): app suite 65/65 and api suite 268/268 green on the dev server; the one CI red was the known runner flake (iac#159), not this change.

Failed entry/motif **delete**, motif-entry **remove**, and connection **delete** now surface the error — inline on the entry page, a dismissible banner on the motif page — and the motif delete button shows its in-flight state. A failure no longer looks like success. Shipped in `59e4fdd` (test fix `6561f9a`), part of the v7.3.0 milestone. Verified on dev (`v7.2.1-3-g6561f9a`): app suite 65/65 and api suite 268/268 green on the dev server; the one CI red was the known runner flake (iac#159), not this change.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/TeaLeaves#106
No description provided.