View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0012149 | Taler | wallet (iOS App) | public | 2026-11-15 19:38 | 2026-11-15 19:38 |
| Reporter | bot-cg [agent] | ||||
| Priority | normal | Severity | minor | ||
| Status | new | ||||
| Summary | 0012149: Deleting a transaction from its page ends on "Internal core error" (7052 transaction not found): the list row asks for the transaction just deleted (patch attached) | ||||
| Description | Deleting a completed payment works, and the user is then shown an error for it. Steps (no fault injected; first seen in fuzz campaign c2h-29, episode 39, then reproduced by a scenario): 1. Pay an order. Open the payment from "Recent transactions". 2. Scroll down, "Delete from history", confirm (delete-confirmation.jpg). 3. The page closes, and "Internal core error -- 7052 -- transaction txn:payment:... not found" comes up (delete-shows-internal-core-error.jpg). From the app log: 27.965 deleteTransaction{txn:payment:8K60...} 27.982 handleStateTransition: Deleted: txn:payment:8K60... 27.991 switching from 22 to 11 BalancesListView.swift:72 27.993 getTransactionById{txn:payment:8K60..., includeContractTerms:true} 27.994 ... error: { "code": 7052, "hint": "transaction ... not found" } Cause. Back on Balances the row of the deleted payment is still on screen for a moment, until the list has reloaded. TransactionRowView.viewDidLoad() fetches the full transaction for payments to get the merchant's logo: if let fullTx = try? await model.getTransactionById(txId, includeContractTerms: true) { The `try?` shows the failure is meant to be ignored, but sendRequest() reports every error to the user unless the caller passes viewHandles: true. (A log line in TransactionSummaryList.loadTransaction() confirmed the request does not come from the detail page.) Patch (delete-transaction-7052.diff): pass viewHandles: true for this cosmetic lookup. Built and run: the same scenario now returns to Balances with no error. The same pattern -- `try?` around a request that still raises the error sheet -- is used in other places, so other "harmless" lookups can surface as Internal core error in the same way. | ||||
| Tags | No tags attached. | ||||
| Attached Files | delete-transaction-7052.diff (1,198 bytes)
diff --git a/TalerWallet1/Views/Transactions/TransactionRowView.swift b/TalerWallet1/Views/Transactions/TransactionRowView.swift
index b48c306b..265f70c6 100755
--- a/TalerWallet1/Views/Transactions/TransactionRowView.swift
+++ b/TalerWallet1/Views/Transactions/TransactionRowView.swift
@@ -362,7 +362,10 @@ struct TransactionRowView: View {
let txId = transaction.id
if merchantLogo == nil {
symLog.log("loading merchantLogo for \(txId)")
- if let fullTx = try? await model.getTransactionById(txId, includeContractTerms: true) {
+ // viewHandles: this is a cosmetic lookup and its failure is already ignored (`try?`).
+ // Without it, a row that is still on screen for a moment after its transaction
+ // was deleted asked for that transaction and put up "Internal core error" (7052).
+ if let fullTx = try? await model.getTransactionById(txId, includeContractTerms: true, viewHandles: true) {
if let logo = merchantLogo(talerTx: fullTx) {
symLog("found terms.merchant.logo for \(txId)")
merchantLogo = logo
| ||||
| child of | 0012147 | new | iOS wallet: state the user can never delete -- audit against the rule that every item must be individually removable [meta] |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-11-15 19:38 | bot-cg | New Issue | |
| 2026-11-15 19:38 | bot-cg | Relationship added | child of 0012147 |
| 2026-11-15 19:38 | bot-cg | Implementer | => MarcS |
| 2026-11-15 19:38 | bot-cg | Reviewer | => bernaalp |
| 2026-11-15 19:38 | bot-cg | Deployed by | => mikolai |
| 2026-11-15 19:38 | bot-cg | Verifier | => Florian Dold |
| 2026-11-15 19:38 | bot-cg | Communicator | => CM_7 |
| 2026-11-15 19:38 | bot-cg | File Added: delete-confirmation.jpg | |
| 2026-11-15 19:38 | bot-cg | File Added: delete-shows-internal-core-error.jpg | |
| 2026-11-15 19:38 | bot-cg | File Added: delete-transaction-7052.diff |