View Issue Details

IDProjectCategoryView StatusLast Update
0010757Talerexchangepublic2025-12-21 20:46
ReporterFlorian Dold Assigned ToFlorian Dold 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
PriorityurgentSeveritymajorReproducibilityhave not tried
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version1.3Fixed in Version1.3 
Summary0010757: exchange does not return attributes set by AML officer decision (test: kyc-decision-attr)
DescriptionA regression happened on the following test:

$ taler-harness run-integrationtests kyc-decision-attr

The exchange (ef94c79fca31b) returns an empty list of attributes after the AML officer has set an attribute via an AML decision.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Christian Grothoff

2025-12-11 09:10

manager   ~0026871

Seems that the AML decision of the test lacks the "mandatory" attribute "FORM_ID", which then causes the latest rendering logic to skip the attributes.

Christian Grothoff

2025-12-11 09:11

manager   ~0026872

So question:
1) is FORM_ID mandatory? If so, the test should be fixed to supply it, and the exchange to *enforce* FORM_ID to be present upon submission.
2) if not, we can return the attributes in JSON without it, but then we cannot return them in a PDF.

I think (1) is the correct fix.

Florian Dold

2025-12-11 15:36

manager   ~0026879

I agree that (1) is correct.

Christian Grothoff

2025-12-14 13:30

manager   ~0026965

e0062e59..294a0898 clarifies that the FORM_ID is mandatory if an AML decision includes attributes.

Christian Grothoff

2025-12-14 14:03

manager   ~0026966

I've modifed taler-docs to specify FORM_ID as required for all attributes (on GET and POST).

Christian Grothoff

2025-12-14 14:10

manager   ~0026967

d34edb354..1d17a50c4 now *enforces* that the FORM_ID is always present in all attributes.

Christian Grothoff

2025-12-14 14:12

manager   ~0026968

kyc-decision-attr now fails (as expected) with
""
FATAL: test failed with exception AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:

400 !== 204
""
This is because the test does NOT submit the now mandatory FORM_ID in the decision. The test should be changed
to (1) expect 400 on this POST, and (2) then submit the attributes with a proper FORM_ID.

Christian Grothoff

2025-12-14 14:16

manager   ~0026969

kyc-fail-recover-simple fails for a related reason: FORM_ID is missing when POSTing to kyc-upload, so you're getting 400 instead of the expected 500 status now.

Florian Dold

2025-12-15 17:24

manager   ~0026993

Test passes now, as it specifies the FORM_ID in the POST decision request.

Issue History

Date ModifiedUsernameFieldChange
2025-12-10 17:52Florian DoldNew Issue
2025-12-10 17:52Florian DoldStatusnew => assigned
2025-12-10 17:52Florian DoldAssigned To => Christian Grothoff
2025-12-11 09:10Christian GrothoffNote Added: 0026871
2025-12-11 09:11Christian GrothoffNote Added: 0026872
2025-12-11 09:11Christian GrothoffAssigned ToChristian Grothoff => Florian Dold
2025-12-11 09:11Christian GrothoffStatusassigned => feedback
2025-12-11 15:36Florian DoldNote Added: 0026879
2025-12-11 15:37Florian DoldAssigned ToFlorian Dold => Christian Grothoff
2025-12-14 13:30Christian GrothoffNote Added: 0026965
2025-12-14 14:03Christian GrothoffNote Added: 0026966
2025-12-14 14:10Christian GrothoffNote Added: 0026967
2025-12-14 14:12Christian GrothoffNote Added: 0026968
2025-12-14 14:12Christian GrothoffAssigned ToChristian Grothoff => Florian Dold
2025-12-14 14:12Christian GrothoffStatusfeedback => assigned
2025-12-14 14:16Christian GrothoffNote Added: 0026969
2025-12-15 17:24Florian DoldStatusassigned => informing
2025-12-15 17:24Florian DoldResolutionopen => fixed
2025-12-15 17:24Florian DoldNote Added: 0026993
2025-12-15 18:16Christian GrothoffProduct Version => git (master)
2025-12-15 18:16Christian GrothoffFixed in Version => 1.3
2025-12-15 18:16Christian GrothoffTarget Version1.4 => 1.3
2025-12-21 20:46Christian GrothoffStatusinforming => closed