View Issue Details

IDProjectCategoryView StatusLast Update
0009150Talerwallet-corepublic2024-12-13 18:15
Reportermikolai Assigned Tomikolai 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
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version0.12 
Target Version0.14Fixed in Version0.14 
Summary0009150: Polling problem on wallet-initiated withdrawal
DescriptionWallet-initiated withdrawals show a error message as long as the wire-transfer to the exchange is not completed. As soon as it is, the withdrawal is completed successfully.

The root cause might well be in wallet-core or at the exchange's side, but I don't have further insights myself.
Steps To Reproduce1. Open Android app
2. click "receive"
3. input an arbitrary amount
4. click "withdraw from bank account"
5. confirm withdrawal
6. go back to transaction list
7. wait some time
8. see the following error in red: "Error response did not even contain JSON. The request URL might be wrong or the service might be unavailable"
9. debug mode shows:

{
  "code": 7002,
  "hint": "Error response did not even contain JSON. The request URL might be wrong or the service might be unavailable.",
  "message": null,
  "when": {
    "t_ms": 1725032753355
  },
  "requestUrl": "https://exchange.demo.taler.net/reserves/3MRZWS3Z9G6R9Y1KDPB310Q3C12YHD0AXJJXFNBZHEJVKBJAZ73G?timeout_ms=30000",
  "requestMethod": "GET",
  "httpStatusCode": 404,
  "contentType": "[application/json]"
}

10. manually transfer the money via the bank UI at bank.demo.taler.net (using the payto:// URI shown in the wallet)
11. see a successful withdrawal
Additional InformationOn our local setup, we face a similar problem, but a different error message:

{
  "id": "req-1034",
  "when": {
    "t_ms": 1725027465082
  },
  "type": "http-fetch-finish-error",
  "url": "https://exchange.taler.datenspuren.de/reserves/4YT7XASRHRN1341BMAAQC2X16PB46VEYPWRY8VMZJ6S65K7E3W6G?timeout_ms=30000",
  "error": {
    "code": 7001,
    "when": {
      "t_ms": 1725027465082
    },
    "hint": "unexpected exception (message: unexpected end of stream on https://exchange.taler.datenspuren.de/...)",
    "stack": " at fetch (<compiled_js>:9314)\n"
  }
}

After successful wire transfer, the withdrawal succeeds here, too.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Christian Grothoff

2024-08-30 19:03

manager   ~0023121

You should configure your nginx with longer timeouts. Basically, your nginx terminates the connection with a gateway timeout, returning HTML. That's what makes the wallet unhappy. Just tell nginx:

    proxy_send_timeout 3000s;

or similar ;-).

mikolai

2024-09-02 09:22

developer   ~0023130

Such timeouts are already part of the regional-currency deployment, so no need to change anything there. I think the problem comes from the C3D2 infrastructure with another proxy in front of our Taler server that probably terminates connections too early. Will try to increase the timeouts there. Is there a maximum value that should be allowed / will be requested by the wallet?

mikolai

2024-09-02 09:27

developer   ~0023131

But maybe wallet-core could handle an empty response after a certain amount of time a little more gracefully and decrease the polling timeout for further requests to that server.

URL to test with (for now, until timeouts are adapted): https://exchange.taler.datenspuren.de/reserves/BDW8G51HVR6BSN6VZSTRVQDJJCBSQH5R4XY55A82NTR6V6BWCTR0?timeout_ms=40000

Florian Dold

2024-09-02 11:28

manager   ~0023136

The typical long-polling timeout is 30s. In some circumstances it's lower, but currently never higher.

Florian Dold

2024-10-04 13:45

manager   ~0023442

@mikolai can we close this?

The weird "contentType": "[application/json]" (note the brackets) has been fixed on Android, it was an Android native networking specific problem.

AFAICT, this has caused the weird error message in this case.

mikolai

2024-10-04 13:47

developer   ~0023443

Sure, thanks for your help.

Issue History

Date ModifiedUsernameFieldChange
2024-08-30 15:50mikolaiNew Issue
2024-08-30 15:50mikolaiStatusnew => assigned
2024-08-30 15:50mikolaiAssigned To => Florian Dold
2024-08-30 19:03Christian GrothoffNote Added: 0023121
2024-09-02 09:22mikolaiNote Added: 0023130
2024-09-02 09:27mikolaiNote Added: 0023131
2024-09-02 09:28mikolaiCategorywallet (Android App) => wallet-core
2024-09-02 11:28Florian DoldNote Added: 0023136
2024-10-04 13:43Florian DoldAssigned ToFlorian Dold => mikolai
2024-10-04 13:45Florian DoldNote Added: 0023442
2024-10-04 13:47mikolaiStatusassigned => informing
2024-10-04 13:47mikolaiResolutionopen => fixed
2024-10-04 13:47mikolaiNote Added: 0023443
2024-10-07 14:35Christian GrothoffFixed in Version => 0.14
2024-10-07 14:35Christian GrothoffTarget Version => 0.14
2024-12-13 18:15Christian GrothoffStatusinforming => closed