View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0011429 | Taler | merchant backend | public | 2026-05-22 11:04 | 2026-05-22 11:04 |
| Reporter | Christian Grothoff | Assigned To | Christian Grothoff | ||
| Priority | high | Severity | major | Reproducibility | always |
| Status | assigned | Resolution | open | ||
| Platform | i7 | OS | Debian GNU/Linux | OS Version | squeeze |
| Product Version | git (master) | ||||
| Target Version | 1.6 | ||||
| Summary | 0011429: templates / orders incorrectly use contract parser | ||||
| Description | This can result in subtle failures in 'choices' where for contracts (and only contracts) "key_index" is mandatory. The "is_order" bit of TALER_MERCHANT_parse_choice_output() is not set correctly, especially when parsing templates, resulting in fun like: WARNING Failed to parse key_index at 3: key_index EKTDKQVSETVJG8X3XTW) WARNING External protocol violation detected at ../src/util/contract_parse.c:274 EKTDKQVSETVJG8X3XTW) ERROR Assertion failed at ../src/util/contract_parse.c:493. EKTDKQVSETVJG8X3XTW) WARNING Invalid paivana template_contract for field choices EKTDKQVSETVJG8X3XTW) WARNING External protocol violation detected at ../src/backend/taler-merchant-httpd_post-private-templates.c:109. 9fc9bf43fe taler-merchant-httpd[123565]: { 29fc9bf43fe taler-merchant-httpd[123565]: "template_type": "paivana", 29fc9bf43fe taler-merchant-httpd[123565]: "summary": "Access to: standard", 29fc9bf43fe taler-merchant-httpd[123565]: "choices": [ 29fc9bf43fe taler-merchant-httpd[123565]: { 29fc9bf43fe taler-merchant-httpd[123565]: "amount": "KUDOS:0", 29fc9bf43fe taler-merchant-httpd[123565]: "description": "Pay in KUDOS with subscription", 29fc9bf43fe taler-merchant-httpd[123565]: "inputs": [ 29fc9bf43fe taler-merchant-httpd[123565]: { 29fc9bf43fe taler-merchant-httpd[123565]: "type": "token", 29fc9bf43fe taler-merchant-httpd[123565]: "token_family_slug": "monthly", 29fc9bf43fe taler-merchant-httpd[123565]: "count": 1 29fc9bf43fe taler-merchant-httpd[123565]: } 29fc9bf43fe taler-merchant-httpd[123565]: ] 29fc9bf43fe taler-merchant-httpd[123565]: }, 29fc9bf43fe taler-merchant-httpd[123565]: { 29fc9bf43fe taler-merchant-httpd[123565]: "amount": "KUDOS:5", 29fc9bf43fe taler-merchant-httpd[123565]: "description": "Buy subscription in KUDOS", 29fc9bf43fe taler-merchant-httpd[123565]: "outputs": [ 29fc9bf43fe taler-merchant-httpd[123565]: { 29fc9bf43fe taler-merchant-httpd[123565]: "type": "token", 29fc9bf43fe taler-merchant-httpd[123565]: "token_family_slug": "monthly", 29fc9bf43fe taler-merchant-httpd[123565]: "count": 1 29fc9bf43fe taler-merchant-httpd[123565]: } 29fc9bf43fe taler-merchant-httpd[123565]: ] 29fc9bf43fe taler-merchant-httpd[123565]: }, 29fc9bf43fe taler-merchant-httpd[123565]: { 29fc9bf43fe taler-merchant-httpd[123565]: "amount": "CHF:0", 29fc9bf43fe taler-merchant-httpd[123565]: "description": "Pay in CHF with subscription", 29fc9bf43fe taler-merchant-httpd[123565]: "inputs": [ 29fc9bf43fe taler-merchant-httpd[123565]: { 29fc9bf43fe taler-merchant-httpd[123565]: "type": "token", 29fc9bf43fe taler-merchant-httpd[123565]: "token_family_slug": "monthly", 29fc9bf43fe taler-merchant-httpd[123565]: "count": 1 29fc9bf43fe taler-merchant-httpd[123565]: } 29fc9bf43fe taler-merchant-httpd[123565]: ] 29fc9bf43fe taler-merchant-httpd[123565]: }, 29fc9bf43fe taler-merchant-httpd[123565]: { 29fc9bf43fe taler-merchant-httpd[123565]: "amount": "CHF:5", 29fc9bf43fe taler-merchant-httpd[123565]: "description": "Buy subscription in CHF", 29fc9bf43fe taler-merchant-httpd[123565]: "outputs": [ 29fc9bf43fe taler-merchant-httpd[123565]: { 29fc9bf43fe taler-merchant-httpd[123565]: "type": "token", 29fc9bf43fe taler-merchant-httpd[123565]: "token_family_slug": "monthly", 29fc9bf43fe taler-merchant-httpd[123565]: "count": 1 29fc9bf43fe taler-merchant-httpd[123565]: } 29fc9bf43fe taler-merchant-httpd[123565]: ] 29fc9bf43fe taler-merchant-httpd[123565]: } 29fc9bf43fe taler-merchant-httpd[123565]: ], 29fc9bf43fe taler-merchant-httpd[123565]: "pay_duration": { 29fc9bf43fe taler-merchant-httpd[123565]: "d_us": 86400000000 29fc9bf43fe taler-merchant-httpd[123565]: }, 29fc9bf43fe taler-merchant-httpd[123565]: "max_pickup_duration": { 29fc9bf43fe taler-merchant-httpd[123565]: "d_us": 86400000000 29fc9bf43fe taler-merchant-httpd[123565]: } 29fc9bf43fe taler-merchant-httpd[123565]: } | ||||
| Tags | No tags attached. | ||||
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-05-22 11:04 | Christian Grothoff | New Issue | |
| 2026-05-22 11:04 | Christian Grothoff | Status | new => assigned |
| 2026-05-22 11:04 | Christian Grothoff | Assigned To | => Christian Grothoff |
| 2026-05-22 11:04 | Christian Grothoff | Priority | normal => high |