View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0010612 | Taler | merchant backend | public | 2025-11-14 16:54 | 2026-07-05 22:36 |
| Reporter | Florian Dold | Assigned To | Florian Dold | Resolution deadline | |
| Implementer | Reviewer | ||||
| Release signed by | Deployed by | ||||
| Verifier | Communicator | ||||
| Data protection authority notification required | No | ||||
| CSIRT notification required | No | ||||
| Estimated effort (hours) | Actual effort (hours) | 0 | |||
| Fast-track | No | ||||
| Work package | none | ||||
| Priority | normal | Severity | major | Reproducibility | have not tried |
| Status | informing | Resolution | fixed | ||
| Product Version | 1.0 | ||||
| Target Version | 1.6 | Fixed in Version | 1.6 | ||
| Summary | 0010612: token family reported as expired, but should still be valid | ||||
| Description | We created a token family with a validity about a year in the future. However, after about a month, the backend complained that the token family expired. Maybe the backend doesn't properly re-generate the keys for a token family once one key has expired? | ||||
| Tags | debt | ||||
| has duplicate | 0010549 | closed | Christian Grothoff | problem with token family key generation? |
| child of | 0009057 | implementing | avalos | support subscription and discount tokens [meta] |
| POST /private/orders does contain the logic to create missing keys for output token families on-demand. While the code is complex, it *looks* correct. | |
| I added a test (test_merchant_tokenfamilies.sh, not in make check yet!) including time-travel to check token family keys were created also past the first expiration interval. That works fine. However, when trying to pay, the wallet throws back a strange parse error, even though everything looks fine in wireshare. Ivan (or Florian): please investigate and see if this is a wallet-core issue or something in the merchant backend. test_merchant_tokenfamilies.err (1,859 bytes)
2026-01-28T13:59:25.834Z shepherd.ts INFO active tasks from DB: {
"taskIds": [
"purchase:GYRBNAW45H04W4FD2PMJ9JT9VH2ZY2R6WTRR828XVEWJ04M94ZM0",
"exchange-update:http%3A%2F%2Flocalhost%3A8081%2F",
"exchange-auto-refresh:http%3A%2F%2Flocalhost%3A8081%2F",
"exchange-update:https%3A%2F%2Fexchange.demo.taler.net%2F",
"exchange-auto-refresh:https%3A%2F%2Fexchange.demo.taler.net%2F",
"validate-denoms:"
]
}
2026-01-28T13:59:25.888Z exchanges.ts INFO not updating exchange in status "initial"
2026-01-28T13:59:26.292Z wallet.ts INFO finished wallet core request preparePayForUri with error: {
"code": 7020,
"when": {
"t_ms": 1769609366218
},
"hint": "validation for well-formedness failed"
}
An error occurred while running handle-uri
_TalerError: validation for well-formedness failed
at _TalerError.fromUncheckedDetail (/home/grothoff/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli-bundled.cjs:8435:12)
at Object.call (/home/grothoff/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli-bundled.cjs:61285:28)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async doPay (/home/grothoff/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli-bundled.cjs:63540:18)
at async /home/grothoff/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli-bundled.cjs:64154:9
at async withWallet (/home/grothoff/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli-bundled.cjs:63774:20)
at async CommandGroup.myAction (/home/grothoff/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli-bundled.cjs:64141:3) {
errorDetail: {
code: 7020,
when: { t_ms: 1769609366218 },
hint: 'validation for well-formedness failed'
},
cause: undefined
}
| |
| The test you mention doesn't even start on my system. But I implemented my own test in harness, and it indeed reproduces the issue we also see on shop.test.taler.net. $ taler-harness run-integrationtests merchant-tokenfamilies | |
| 66472c927d16f35b57d3d22d2d64ff6cd1195398 should fix the main issue, alas now the tests fails with a 451. | |
| Test passes, new merchant is deployed on test and the subscriptions demo merchant works. | |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2025-11-14 16:54 | Florian Dold | New Issue | |
| 2025-11-15 14:59 | Christian Grothoff | Severity | minor => major |
| 2025-11-15 14:59 | Christian Grothoff | Status | new => implementing |
| 2025-11-15 14:59 | Christian Grothoff | Product Version | => 1.0 |
| 2025-11-15 14:59 | Christian Grothoff | Target Version | => 1.6 |
| 2025-12-19 19:13 | Christian Grothoff | Relationship added | child of 0009057 |
| 2026-01-25 11:30 | Christian Grothoff | Assigned To | => Christian Grothoff |
| 2026-01-25 11:30 | Christian Grothoff | Status | implementing => assigned |
| 2026-01-26 05:23 | Christian Grothoff | Relationship added | has duplicate 0010549 |
| 2026-01-26 05:53 | Christian Grothoff | Note Added: 0027361 | |
| 2026-01-28 14:05 | Christian Grothoff | Note Added: 0027412 | |
| 2026-01-28 14:05 | Christian Grothoff | File Added: test_merchant_tokenfamilies.err | |
| 2026-01-28 14:06 | Christian Grothoff | Assigned To | Christian Grothoff => avalos |
| 2026-02-04 08:29 | Christian Grothoff | Tag Attached: vivy | |
| 2026-02-04 08:29 | Christian Grothoff | Tag Attached: debt | |
| 2026-02-17 20:57 | Christian Grothoff | Assigned To | avalos => Florian Dold |
| 2026-02-17 20:57 | Christian Grothoff | Tag Detached: vivy | |
| 2026-02-22 14:04 | Christian Grothoff | Status | assigned => implementing |
| 2026-05-27 13:06 | Florian Dold | Note Added: 0028718 | |
| 2026-05-27 13:07 | Florian Dold | Assigned To | Florian Dold => Christian Grothoff |
| 2026-05-27 13:10 | Christian Grothoff | Status | implementing => assigned |
| 2026-05-27 15:29 | Christian Grothoff | Note Added: 0028720 | |
| 2026-05-27 15:29 | Christian Grothoff | Assigned To | Christian Grothoff => Florian Dold |
| 2026-05-28 10:54 | Florian Dold | Status | assigned => informing |
| 2026-05-28 10:54 | Florian Dold | Resolution | open => fixed |
| 2026-05-28 10:54 | Florian Dold | Note Added: 0028721 | |
| 2026-07-05 22:36 | Christian Grothoff | Fixed in Version | => 1.6 |