View Issue Details

IDProjectCategoryView StatusLast Update
0009683Talerwallet (Android App)public2025-05-10 02:13
ReporterAntoine A Assigned ToFlorian Dold Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Target Version1.0Fixed in Version1.0 
Summary0009683: Opening an already completed withdrawal and confirming it produce an error
Description{
  "code": 7001,
  "hint": "unexpected exception (message: unable to confirm withdrawal in current state: 83951617)",
  "message": null,
  "when": {
    "t_ms": 1743498486168
  },
  "stack": " at <anonymous> (<compiled_js>:35938)\n at <anonymous> (<compiled_js>:33859)\n"
}
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

related to 0009670 implementing More reactive payment flows flows 

Activities

Florian Dold

2025-04-07 19:47

manager   ~0024435

I've improved the error reporting, but IMO this is a UI problem. The UI should not let the user confirm, but instead check the transaction's state first.

avalos

2025-04-09 20:07

developer   ~0024492

How do you confirm an already confirmed withdrawal?

Not clear to me how to reproduce this.

Antoine A

2025-04-10 07:01

manager   ~0024493

Initiate a withdrawal from the bank account and save the QR code somewhere.
With your android wallet scan the QR code and complete the withdrawal.
Then scan the QR code again, the wallet does not detect that the withdrawal is already confirmed and propose to confirm it again leading to the error.

avalos

2025-04-10 11:15

developer   ~0024496

Shouldn't `getWithdrawalDetailsForUri` do the error reporting?

avalos

2025-04-10 12:04

developer   ~0024498

What are the statuses where we can safely confirm the withdrawal?

export type WithdrawalOperationStatusFlag =
  | "pending"
  | "selected"
  | "aborted"
  | "confirmed";

Antoine A

2025-04-10 15:19

manager   ~0024500

Not yet familiar enough with the codebase to fix this issue myself but I added some FIXME 0009683 in withdrawal tests where the current behavior should be improved

Antoine A

2025-04-15 07:11

manager   ~0024545

I think that GetWithdrawalDetailsForUri does not check the database and that it is only checked when PrepareBankIntegratedWithdrawal is called after user interaction

avalos

2025-04-15 15:36

developer   ~0024560

Last edited: 2025-04-15 15:36

The code is also now using `prepareBankIntegratedWithdrawal` instead of `getWithdrawalAmountForUri`.

commit f08622718ad42b2ae568d0242db55d220d26123d
Author: Iván Ávalos <avalos@disroot.org>
Date: Tue Apr 15 17:31:11 2025 +0200

    [wallet] check B-I-W status after scanning URI
    
    bug 0009683
image.png (50,863 bytes)   
image.png (50,863 bytes)   

avalos

2025-04-15 15:37

developer   ~0024561

Just for reference:

status = if (tx.txState.major == TransactionMajorState.Dialog) {
    InfoReceived
} else {
    AlreadyConfirmed
},

Issue History

Date ModifiedUsernameFieldChange
2025-04-01 09:08Antoine ANew Issue
2025-04-01 09:08Antoine AStatusnew => assigned
2025-04-01 09:08Antoine AAssigned To => Florian Dold
2025-04-07 19:47Florian DoldNote Added: 0024435
2025-04-07 19:47Florian DoldAssigned ToFlorian Dold => avalos
2025-04-09 20:07avalosNote Added: 0024492
2025-04-09 20:08avalosAssigned Toavalos => Antoine A
2025-04-09 20:08avalosStatusassigned => feedback
2025-04-10 07:01Antoine ANote Added: 0024493
2025-04-10 07:01Antoine AAssigned ToAntoine A => avalos
2025-04-10 11:15avalosNote Added: 0024496
2025-04-10 12:04avalosNote Added: 0024498
2025-04-10 12:04avalosAssigned Toavalos => Florian Dold
2025-04-10 15:19Antoine ANote Added: 0024500
2025-04-10 15:19Antoine AStatusfeedback => assigned
2025-04-15 07:03Antoine ARelationship addedrelated to 0009670
2025-04-15 07:11Antoine ANote Added: 0024545
2025-04-15 15:36avalosNote Added: 0024560
2025-04-15 15:36avalosFile Added: image.png
2025-04-15 15:36avalosNote Edited: 0024560
2025-04-15 15:37avalosNote Added: 0024561
2025-04-15 15:38avalosStatusassigned => informing
2025-04-15 15:38avalosResolutionopen => fixed
2025-05-10 02:12Christian GrothoffFixed in Version => 1.0
2025-05-10 02:13Christian GrothoffStatusinforming => closed