View Issue Details

IDProjectCategoryView StatusLast Update
0010981Talerspecificationpublic2026-03-20 23:55
ReporterFlorian Dold 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
PriorityhighSeveritytweakReproducibilityhave not tried
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version1.5Fixed in Version1.5 
Summary0010981: investigate unclear SMS send failure on my.taler-ops.ch [4h]
DescriptionSending an SMS failed, but the provider 1 (telesign) seemed to have just returned 203.

The other provider (clicksend) returned 400.

Maybe the phone number was not in the right format? We observed recently that the scripts do not seem to do any normalization (stripping spaces etc.), but I would've assumed the SMS providers take care of that.
Additional InformationFeb 04 09:09:31 lifeline taler-merchant-httpd[2912575]: (CPP3PFB265QHSV6BB0GBBTKKM4) INFO Processing /challenge in phase 3
Feb 04 09:09:31 lifeline taler-merchant-httpd[2912575]: (CPP3PFB265QHSV6BB0GBBTKKM4) INFO Trying to start child management.
Feb 04 09:09:34 lifeline taler-merchant-httpd[2912848]: Polling message status (reference_id: 36709ECC38BC02689195BF14D5CF2CC0)...
Feb 04 09:09:59 lifeline taler-merchant-httpd[2912848]: Unclear message delivery status 203 (Delivered to gateway) after 12 iterations. Assuming failure.
Feb 04 09:09:59 lifeline taler-merchant-httpd[2912839]: telesign failed.
Feb 04 09:10:01 lifeline taler-merchant-httpd[2912987]: curl: (22) The requested URL returned error: 400
Feb 04 09:10:01 lifeline taler-merchant-httpd[2912839]: clicksend failed.
Feb 04 09:10:01 lifeline taler-merchant-httpd[2912839]: All SMS providers failed.
Feb 04 09:10:01 lifeline taler-merchant-httpd[2912575]: (CPP3PFB265QHSV6BB0GBBTKKM4) ERROR MFA helper failed with status 3/1
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Christian Grothoff

2026-02-04 19:06

manager   ~0027574

I just learned from Martin Riedi that they used a landline number. When they switched to mobile, it worked.

We need to make it more clear to use a mobile number in the SPA, *and* see if we can detect landline numbers by their structure and reject them early on.

Christian Grothoff

2026-02-04 20:19

manager   ~0027577

Mobile phone numbers in Switzerland start with +417, so we should allow the merchant backend to also impose a restriction on the phone number entered and not permit landline numbers to be provided in the first place.

Christian Grothoff

2026-02-04 21:38

manager   ~0027579

I've pushed a restriction for +417 for the exchange challenger SPA configuration on spec.

sebasjm

2026-02-05 02:44

developer   ~0027582

we can also return a specific error code when the number failed and the SPA can translate that (with i18n) "this number doesn't work, try another one"

Christian Grothoff

2026-02-06 12:59

manager   ~0027624

I've fixed the 500, now returning 502. There is now a FIXME in the backend to make the details on 502 more precise.

Christian Grothoff

2026-02-06 13:00

manager   ~0027625

taler-docs.git, 18ce41f9..2a7639e4 specifies a new phone_regex option in /config to allow the SPA to restrict the phone number on before submission.

Christian Grothoff

2026-02-06 20:00

manager   ~0027630

c2bba221..f38d7fab works more on the specification.

Christian Grothoff

2026-02-06 20:01

manager   ~0027631

c518e5ee..535ecdb9 adds the phone_regex to /config in the merchant backend.

Christian Grothoff

2026-02-06 20:08

manager   ~0027632

535ecdb9..9db8b714 adds backend validation of the number against the regex.

Left to do: better logging and error reporting by the SMS helper(s).

Christian Grothoff

2026-02-07 12:43

manager   ~0027637

SMS helper scripts are now more verbose, in particular they log the failed phone number.

Issue History

Date ModifiedUsernameFieldChange
2026-02-04 14:32Florian DoldNew Issue
2026-02-04 19:06Christian GrothoffNote Added: 0027574
2026-02-04 19:06Christian GrothoffSeverityminor => tweak
2026-02-04 19:06Christian GrothoffStatusnew => implementing
2026-02-04 19:06Christian GrothoffProduct Version => git (master)
2026-02-04 19:06Christian GrothoffTarget Version => 1.5
2026-02-04 19:06Christian GrothoffCategorydeployment and operations => specification
2026-02-04 20:19Christian GrothoffNote Added: 0027577
2026-02-04 20:19Christian GrothoffAssigned To => Christian Grothoff
2026-02-04 20:19Christian GrothoffStatusimplementing => assigned
2026-02-04 21:38Christian GrothoffNote Added: 0027579
2026-02-04 21:39Christian GrothoffSummaryinvestigate unclear SMS send failure on my.taler-ops.ch => investigate unclear SMS send failure on my.taler-ops.ch [4h]
2026-02-05 02:44sebasjmNote Added: 0027582
2026-02-06 12:59Christian GrothoffNote Added: 0027624
2026-02-06 13:00Christian GrothoffNote Added: 0027625
2026-02-06 20:00Christian GrothoffNote Added: 0027630
2026-02-06 20:01Christian GrothoffNote Added: 0027631
2026-02-06 20:08Christian GrothoffNote Added: 0027632
2026-02-07 11:38Christian GrothoffPrioritynormal => high
2026-02-07 12:43Christian GrothoffStatusassigned => informing
2026-02-07 12:43Christian GrothoffResolutionopen => fixed
2026-02-07 12:43Christian GrothoffFixed in Version => 1.5
2026-02-07 12:43Christian GrothoffNote Added: 0027637
2026-03-20 23:55Christian GrothoffStatusinforming => closed