Skip to content

fix: WALLET-1364 — surface a failed export-keys window open - #1428

Open
ost-ptk wants to merge 1 commit into
release/2.7.0from
WALLET-1364-export-keys-error
Open

fix: WALLET-1364 — surface a failed export-keys window open#1428
ost-ptk wants to merge 1 commit into
release/2.7.0from
WALLET-1364-export-keys-error

Conversation

@ost-ptk

@ost-ptk ost-ptk commented Jul 28, 2026

Copy link
Copy Markdown
Member

Ticket: https://make-software.atlassian.net/browse/WALLET-1364 (P1 item 3)

The bug

The user clicks "Download account keys" in the popup navigation menu, a saga opens a separate export window, and if windows.create rejects the catch only writes to the background console. No window, no message, no feedback of any kind — the click simply does nothing.

The comment sitting in that catch justified the silence and was factually wrong, which is how the gap survived review. It claimed "there is no popup left to show it in". Both halves of that were checked against the code and are false:

  • the dispatch comes from the popup navigation menu, whose handler calls closeNavigationMenu() — that only navigates router state to hide the menu overlay, with no window API call at all;
  • the popup mounts SagaErrorBanner unconditionally (src/apps/popup/index.tsx).

When windows.create rejects, no new window takes focus, so the popup is still open and perfectly able to render the error.

The fix

yield put(sagaError({ source: 'openExportKeysWindowSaga', … })) alongside the existing console.error, and the incorrect comment is deleted rather than softened — the reasoning it stated was false, so leaving a softened version would preserve the misleading premise.

The surfaced message is a short static sentence with no error text, no paths and no user data: appEvents is broadcast to every UI replica and the banner renders {source}: {message} verbatim.

Verification

npm run ci-check passes (406 tests). The new test discriminates: removing the put(sagaError(...)) makes it fail while the other five in the file — including the early-return-on-existing-window case and the watcher test — keep passing.

Clicking "Download account keys" when windows.create rejects produced no window
and no feedback whatsoever — the catch only wrote to the background console.

The comment justifying that silence was wrong, so it is deleted rather than
softened: it claimed there is no popup left to show the error in, but the
dispatch comes from the popup navigation menu, whose handler closes the menu
OVERLAY rather than the window, and the popup mounts SagaErrorBanner. When the
window fails to open nothing takes focus, so the popup is still there to render
the banner.

The surfaced message is a static sentence — appEvents is broadcast to every UI
replica and the banner renders source and message verbatim.
@ost-ptk
ost-ptk requested a review from Comp0te July 29, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant