View Issue Details

IDProjectCategoryView StatusLast Update
0009683Talerwallet (Android App)public2025-04-15 17:38
ReporterAntoine A Assigned ToFlorian Dold  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Target 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.

Relationships

related to 0009670 confirmed More reactive payment flows flows 

Activities

Florian Dold

2025-04-07 21: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 22:07

developer   ~0024492

How do you confirm an already confirmed withdrawal?

Not clear to me how to reproduce this.

Antoine A

2025-04-10 09:01

developer   ~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 13:15

developer   ~0024496

Shouldn't `getWithdrawalDetailsForUri` do the error reporting?

avalos

2025-04-10 14: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 17:19

developer   ~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 09:11

developer   ~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 17:36

developer   ~0024560

Last edited: 2025-04-15 17: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 17:37

developer   ~0024561

Just for reference:

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

Issue History

Date Modified Username Field Change
2025-04-01 11:08 Antoine A New Issue
2025-04-01 11:08 Antoine A Status new => assigned
2025-04-01 11:08 Antoine A Assigned To => Florian Dold
2025-04-07 21:47 Florian Dold Note Added: 0024435
2025-04-07 21:47 Florian Dold Assigned To Florian Dold => avalos
2025-04-09 22:07 avalos Note Added: 0024492
2025-04-09 22:08 avalos Assigned To avalos => Antoine A
2025-04-09 22:08 avalos Status assigned => feedback
2025-04-10 09:01 Antoine A Note Added: 0024493
2025-04-10 09:01 Antoine A Assigned To Antoine A => avalos
2025-04-10 13:15 avalos Note Added: 0024496
2025-04-10 14:04 avalos Note Added: 0024498
2025-04-10 14:04 avalos Assigned To avalos => Florian Dold
2025-04-10 17:19 Antoine A Note Added: 0024500
2025-04-10 17:19 Antoine A Status feedback => assigned
2025-04-15 09:03 Antoine A Relationship added related to 0009670
2025-04-15 09:11 Antoine A Note Added: 0024545
2025-04-15 17:36 avalos Note Added: 0024560
2025-04-15 17:36 avalos File Added: image.png
2025-04-15 17:36 avalos Note Edited: 0024560
2025-04-15 17:37 avalos Note Added: 0024561
2025-04-15 17:38 avalos Status assigned => resolved
2025-04-15 17:38 avalos Resolution open => fixed