There was a bug in the WAL support. The one known scenario for reproducing it was to have an existing non-Room, non-WAL SQLCipher for Android database, then open the database using
RoomDatabase while applying a migration. SQLite does not support changing journal modes in a transaction, but migrations are executed in a transaction, and Room’s request for WAL was getting included in that transaction. I now make sure that I do not try applying WAL while in a transaction, and I apply it after the database is safely created/upgraded.
If you have any questions, start a fresh topic in the CWAC category here, or ask on Stack Overflow in the
commonsware-cwac tag. If you encounter a bug, read the contribution guidelines, then file an issue.