summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-06-03 10:57:41 +0200
committerFlorian Dold <florian.dold@gmail.com>2019-06-03 10:57:41 +0200
commit72cc5d7dd1d2536b37dbb33b1838b80ad3b46459 (patch)
treee00f61ead58913b0f0a32543518217b33389ba0e
parent03d11865afe0749f72adc408c310823716e11b03 (diff)
downloaddeployment-72cc5d7dd1d2536b37dbb33b1838b80ad3b46459.tar.gz
deployment-72cc5d7dd1d2536b37dbb33b1838b80ad3b46459.tar.bz2
deployment-72cc5d7dd1d2536b37dbb33b1838b80ad3b46459.zip
post mortem
-rw-r--r--postmortem/2019-06-02-wallet-wire-fees.txt34
-rw-r--r--postmortem/template.txt27
2 files changed, 61 insertions, 0 deletions
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.