View Issue Details

IDProjectCategoryView StatusLast Update
0010662Talerwallet (WebExtension)public2025-11-27 09:33
Reporterhtgoebel Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status acknowledgedResolutionopen 
Target Versionpost-1.0 
Summary0010662: Can't take refund if order is deleted
DescriptionIn the wallet, when deleting a payment from the "balance" list, one can not receive any refund for this payment.

This will actually lead to customers loosing money. (Thought the money ist not lost, since the merchant has it.)

Expected:
Either
- being able to receive refund even if the corresponding purchase is gone
or
. puchances mut not be deletable (and deleted) before the end of the refund deadline.
Steps To Reproduce1. In the merchant SPA create an order (no auto-refund!)
2. In the Wallet pay it.
3. In the Wallet, remove the purchase from the Balance list (click on the purchase entry and then on "Delete")
4. In the merchant SPA, refund the payment
5. In the merchant SPA, go to the order details and click the "Refund URL" link
6. The Wallet shows error: "Could not load the refund status Wallet operation "startRefundQueryForUri" failed"


{
  "context": [],
  "cause": {
    "details": {
      "code": 7001,
      "when": {
        "t_ms": 1764105187306
      },
      "hint": "unexpected exception (message: no purchase found, can't refund)",
      "stack": "startRefundQueryForUri@moz-extension://1836e6f3-969e-4e6a-a6df-ee4b8c07bc79/dist/background.js:50384:11\n"
    }
  }
}
Additional InformationI'm using the Wallet with "developer mode" enabled.

Web Extension
1.1.0 35435d32112a596930b72ddf9f43b553fdbaba97
TagsNo tags attached.

Activities

Christian Grothoff

2025-11-27 09:00

manager   ~0026638

I'm not sure we can *reliably* do this. Deleted means we don't know about the order anymore, and given that this is a privacy project, that includes truly deleting associated data. Can't be that you deleted the transaction but it is still in your local database, imagine it was a donation to some opposition party and it's in your DB when some oppressive regime checks your phone.

So we must fully delete the order, which includes the refund deadline, and if possible associated coin keys (as otherwise I can still find evidence of you being the buyer on your phone!). Now, we might be able to round-up the refund deadline and keep the required data around until then, but that could be subject to abuse if the merchant just sets an excessively long refund deadline and we'd effectively not delete the data in a timely fashion (privacy attack by merchant).

Florian Dold

2025-11-27 09:07

manager   ~0026639

IMO a good first step would be to add a strong warning in the UI to the user if the refund deadline hasn't expired yet and they want to delete an order in the wallet.

"If you delete this transaction from your history, you will not be able to receive refunds from the merchant for it."

Christian Grothoff

2025-11-27 09:33

manager   ~0026641

That sounds reasonable.

Issue History

Date Modified Username Field Change
2025-11-25 22:21 htgoebel New Issue
2025-11-25 22:27 htgoebel Description Updated
2025-11-25 22:27 htgoebel Steps to Reproduce Updated
2025-11-27 09:00 Christian Grothoff Note Added: 0026638
2025-11-27 09:00 Christian Grothoff Status new => acknowledged
2025-11-27 09:07 Florian Dold Note Added: 0026639
2025-11-27 09:20 Christian Grothoff Target Version => post-1.0
2025-11-27 09:33 Christian Grothoff Note Added: 0026641