iOS app crashes when importing large readaloud files from local storage
Importing some synced books into the iOS app from a local file or a cloud drive crashes the app instantly, while other books import fine. Nothing shows in the server log because the import is entirely local. The same file opens without problems in another EPUB 3 reader, and re-saving it through Calibre does not help. Books were processed with server 2.14.0.
Resolution: The local-file import path read the entire file into memory via externalFile.bytes() before unpacking it, so a large readaloud (a ~1.1GB book pushed memory past 3GB) got the app killed by the OS. Size, not file validity, is what separates the books that crash from the ones that work — which is why the file plays fine in other readers. The fix streams the file instead of buffering it and shipped in app 2.7.3; update the app and re-import. As a workaround on any version, download the book from your Storyteller server instead of importing a local copy, since the download path was never affected. Very large libraries may still hit memory pressure, so import the biggest books first if you are close to the limit.