View Issue Details

IDProjectCategoryView StatusLast Update
0010480Talermerchant backendpublic2025-11-22 22:06
Reporteravalos Assigned ToChristian Grothoff 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 Version1.0 
Target Version1.2Fixed in Version1.2 
Summary0010480: 502 error when paying order with TESTKUDOS:0 tax receipt
DescriptionWhen creating an order in backend.test.taler.net with a TESTKUDOS:0 tax receipt:

ORDER_ID="$(curl "${BACKEND_URL}/private/orders" \
     --header "Authorization: Bearer ${BACKEND_TOKEN}" \
     --data "{
  \"order\": {
    \"version\": 1,
    \"summary\": \"Test donation order\",
    \"choices\": [{
      \"amount\": \"TESTKUDOS:0\",
      \"inputs\": [],
      \"outputs\": [{
        \"type\": \"tax-receipt\",
        \"amount\": \"TESTKUDOS:0\",
        \"donau_urls\": [
          \"https://donau.test.taler.net/\"
        ]
      }]
    }]
  }
}" | jq -r .order_id)"

And then paying it with the wallet, the exchange returns 502 with an empty error response:

{
  "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": 1760010931804
  },
  "requestUrl": "https://backend.test.taler.net/instances/sandbox/orders/2025.282-03G6X9REDYVN6/pay",
  "requestMethod": "POST",
  "httpStatusCode": 502,
  "response": "",
  "contentType": "<null>"
}

This is what the wallet sends to the merchant:

2025-10-09T12:07:32.561Z pay-merchant.ts INFO sending donau data: {
  "url": "https://donau.test.taler.net/",
  "year": 2025,
  "budikeypairs": []
}

This is what appears in the logs:

Oct 09 12:01:21 cceb10198446 taler-merchant-httpd[39649]: (25K7J8R34P1HFWFB60SWEXC9EG) WARNING External protocol violation detected at taler-merchant-httpd_post-orders-ID-pay.c:4376.
Oct 09 12:01:21 cceb10198446 taler-merchant-httpd[39649]: (25K7J8R34P1HFWFB60SWEXC9EG) ERROR Assertion failed at taler-merchant-httpd_post-orders-ID-pay.c:820. Aborting.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Bohdan

2025-10-14 09:02

developer   ~0026166

I think we have forbidden the 0 payments for Donau; at least one BKP must be present at payment time.

I still don't really get why you get such an error...
```
"code": 7002,
  "hint": "Error response did not even contain JSON. The request URL might be wrong or the service might be unavailable.",
  "message": null,
```
image.png (23,458 bytes)   
image.png (23,458 bytes)   

Christian Grothoff

2025-10-26 12:53

manager   ~0026248

resume_pay_with_error is wrong in this place, as we're not actually suspended, so pay_end() must be used instead.
I've fixed 2 other related places like this. Furthermore, I've modified the code to accept an empty budikeypair array.

Christian Grothoff

2025-10-26 12:53

manager   ~0026249

Fix committed to master branch.

Issue History

Date ModifiedUsernameFieldChange
2025-10-09 12:19avalosNew Issue
2025-10-09 12:19avalosStatusnew => assigned
2025-10-09 12:19avalosAssigned To => Florian Dold
2025-10-09 12:19Florian DoldTarget Version => 1.2
2025-10-14 09:02BohdanNote Added: 0026166
2025-10-14 09:02BohdanFile Added: image.png
2025-10-23 22:55Christian GrothoffAssigned ToFlorian Dold => Christian Grothoff
2025-10-26 12:53Christian GrothoffNote Added: 0026248
2025-10-26 12:53Christian Grothoff
2025-10-26 12:53Christian GrothoffNote Added: 0026249
2025-10-26 12:53Christian GrothoffStatusassigned => informing
2025-10-26 12:53Christian GrothoffResolutionopen => fixed
2025-10-26 12:53Christian GrothoffProduct Version => 1.0
2025-10-26 12:53Christian GrothoffFixed in Version => 1.2
2025-11-22 22:06Christian GrothoffStatusinforming => closed