taler-deployment

Deployment scripts and configuration files
Log | Files | Refs | README

2019-06-02-wallet-wire-fees.txt (1269B)


      1 ## Issue Summary
      2 
      3 Users were reporting that payments with the wallet sometimes don't work.  The
      4 issue shows as an error message that included the "406" status code from the
      5 merchant.
      6 
      7 Both demo and test was affected.
      8 
      9 ## Root Cause
     10 
     11 The merchant rejected payments because the wallet didn't include the correct
     12 wire fee.
     13 
     14 The wallet didn't include the wire fee in the payment, thus the merchant's
     15 response was correct.
     16 
     17 This misbehavior of the wallet was caused by the wallet not correctly parsing
     18 the exchange's /wire response.  The JSON validator (checkable.ts) returned
     19 "undefined" for maps, due to a missing return statement.
     20 
     21 This error was introduced when switching from the old wire fee format to the
     22 new "payto://"-based wire response format.
     23 
     24 ## Remediation and Prevention
     25 
     26 The error was fixed in the wallet.  An updated wallet for Firefox and Chromium
     27 is in the process of being uploaded.
     28 
     29 In the future, headless wallet tests against the real demo/test deployment will
     30 prevent this kind of mistake from making it to production unnoticed.
     31 
     32 We might also switch to a more battle-tested JSON validator, or move our
     33 current one in a separate package and test the code coverage there.  The
     34 missing "return" would have been easily discovered by a simple unit test.