View Issue Details

IDProjectCategoryView StatusLast Update
0012153Talerwallet (iOS App)public2026-11-15 19:38
Reporterbot-cg [agent]  
PrioritynormalSeverityminor 
Status new 
Summary0012153: Transaction pages that offer the user no way to remove the transaction: Suspend/Resume are developer-only, Retry is never shown, and nothing is shown while the connection is stalled
DescriptionThe transaction page (TransactionSummaryList) shows exactly the actions
wallet-core lists in txActions: isDeleteable / isAbortable / isFailable are
txActions.contains(...) (Transaction.swift:398-400), with no fallback. Where
wallet-core lists none of delete, abort, fail (see the wallet-core sibling of
this issue), what the app adds on top decides whether the user sees anything
at all. Three things make that worse on iOS.

1. Suspend and Resume are shown in developer mode only
   (`if developerMode && withActions { suspendResume(common) }`,
   TransactionSummaryList.swift:316). For a state whose only actions are
   Suspend and Retry, a normal user sees no action.
2. Retry is decoded (TxAction.retry, with a title and an icon) and never
   rendered by any view.
3. While controller.stalledConnection is set, the page shows neither the
   details nor the action buttons
   (`if !controller.stalledConnection { ... if withActions { abortFailDelete(common) } }`,
   :334-343). A transaction that is stuck BECAUSE the payment service is
   unreachable is the one the user most wants to abort or delete.

Recorded example (10 fuzzing episodes, e.g. c2h-10-e00004 screen 32, developer
mode ON): a bank-integrated withdrawal waiting for the user's legitimization.
The page shows

    Pending / Withdrawal / [Suspend] / 9 November 2026 at 14:10 / kyc
    "You need to pass a legitimization procedure." [Open legitimization website]

and nothing else. With developer mode off, the Suspend button is gone too. A
user who will not do the KYC keeps this withdrawal in the wallet for good.

Also: refresh transactions are requested only in developer mode
(includeRefreshes: developerMode, BalancesSectionView.swift:71,88,97, and
false for the recent list :62). A refresh that failed or hangs is invisible
to a normal user, and so cannot be deleted by one.

Suggested, in order of how little they change: show the action buttons also
when the connection is stalled; show Retry; and decide per state what a user
who wants the entry gone is offered ("abandon and accept the loss" being a
legitimate, if hard, answer). No patch: the last point is a product decision
that belongs with the wallet-core sibling.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

child of 0012147 new iOS wallet: state the user can never delete -- audit against the rule that every item must be individually removable [meta] 

Activities

There are no notes attached to this issue.

Issue History

Date ModifiedUsernameFieldChange
2026-11-15 19:38bot-cgNew Issue
2026-11-15 19:38bot-cgRelationship addedchild of 0012147
2026-11-15 19:38bot-cgImplementer => MarcS
2026-11-15 19:38bot-cgReviewer => bernaalp
2026-11-15 19:38bot-cgDeployed by => mikolai
2026-11-15 19:38bot-cgVerifier => Florian Dold
2026-11-15 19:38bot-cgCommunicator => CM_7