Stream summary:
Lots of struggling, and then finally a test bot working with our crypto store!
Spent quite a while thinking we were not saving anything into Redis before realising we actually were and I just didn't know how to Redis.
The real problem was we were creating a new device every time we logged in, so it couldn't read messages that were encrypted for a previous device. The "fix" was to clean everything out and start with no device at all.
Next time, we'll try re-adopt an existing device when we re-start.