From 72cc5d7dd1d2536b37dbb33b1838b80ad3b46459 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 3 Jun 2019 10:57:41 +0200 Subject: post mortem --- postmortem/2019-06-02-wallet-wire-fees.txt | 34 ++++++++++++++++++++++++++++++ postmortem/template.txt | 27 ++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 postmortem/2019-06-02-wallet-wire-fees.txt create mode 100644 postmortem/template.txt diff --git a/postmortem/2019-06-02-wallet-wire-fees.txt b/postmortem/2019-06-02-wallet-wire-fees.txt new file mode 100644 index 0000000..be49a18 --- /dev/null +++ b/postmortem/2019-06-02-wallet-wire-fees.txt @@ -0,0 +1,34 @@ +## Issue Summary + +Users were reporting that payments with the wallet sometimes don't work. The +issue shows as an error message that included the "406" status code from the +merchant. + +Both demo and test was affected. + +## Root Cause + +The merchant rejected payments because the wallet didn't include the correct +wire fee. + +The wallet didn't include the wire fee in the payment, thus the merchant's +response was correct. + +This misbehavior of the wallet was caused by the wallet not correctly parsing +the exchange's /wire response. The JSON validator (checkable.ts) returned +"undefined" for maps, due to a missing return statement. + +This error was introduced when switching from the old wire fee format to the +new "payto://"-based wire response format. + +## Remediation and Prevention + +The error was fixed in the wallet. An updated wallet for Firefox and Chromium +is in the process of being uploaded. + +In the future, headless wallet tests against the real demo/test deployment will +prevent this kind of mistake from making it to production unnoticed. + +We might also switch to a more battle-tested JSON validator, or move our +current one in a separate package and test the code coverage there. The +missing "return" would have been easily discovered by a simple unit test. diff --git a/postmortem/template.txt b/postmortem/template.txt new file mode 100644 index 0000000..5d7ff73 --- /dev/null +++ b/postmortem/template.txt @@ -0,0 +1,27 @@ +# Template for Post Mortem Entries + + +## Issue Summary + +Explain concisely what the issue was, from the perspective of a user. + + +## Issue Details + +Optional. Explain in more detail what happened. + + +## Root Cause + +Explain why it happened. + + +## Remediation and Prevention + +Explain what we did to solve the issue, and how we prevent it from (hopefully) +never happening again. Reference bug numbers for these! + + +## Discussion + +Space for discussion. -- cgit v1.2.3