Skip to content

Postmortem 1

Overtorment edited this page Aug 23, 2019 · 1 revision

2019-08-23 20:20 UTC

After app relaunch there are no wallets (happened to few selected users)

Affects version: 4.2.0

Root cause: unknown, some combination of updated RN and updated AsyncStorage (which was recently separated from RN core into separate package) on very rare occasions make either setItem() or getItem() silently fail, with no way to reproduce on demand.

Fix: 4.4.0 migrates available data to OS's secure keyring which appears to be more reliable and even persist between app deletion and installation from app store.

Why did it happen? Our AsyncStorage unit tests could not catch this in nodejs/cli environment because it is not reproducible there. During manual build tests this could not be reproduced as well. With a little bit of luck it could be caught by end-to-end acceptance tests (given they run often enough, on each commit etc)

How to prevent this from happening? Start doing e2e testing: https://github.com/BlueWallet/BlueWallet/issues/607