Skip to content

[BUG] A failing row action in the settings list is a silent dead button #1585

Description

@chhoumann

Found while fixing #1566, deliberately left out of #1583.

The shape

ChoiceView.svelte's row actions are async click handlers with no catch:

  • deleteChoice (:196)
  • handleConfigureChoice (:216)
  • handleDuplicateChoice (:265)
  • handleRenameChoice, handleMoveChoice

If any of them throws, the click produces an unhandled promise rejection and nothing happens - no Notice, no console message the user would ever look for, no visual change. The button just does not work, which reads as "QuickAdd is broken" with nothing to report.

#1583 fixed the throws it knew about (a null entry inside a folder's children made Duplicate throw exactly this way), but the swallowing itself is untouched: the next unknown defect on any of these paths will present the same way.

Expected

A throw in a row action surfaces as a Notice naming the action, via the existing reportError (src/utils/errorUtils.ts), the way the rest of the plugin reports failures.

Note

Svelte's <svelte:boundary> does NOT help here. It catches render and effect errors; event-handler errors are re-thrown to the window (node_modules/svelte/src/internal/client/dom/elements/events.js). This needs explicit handling at the handlers.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions