Watch-folder scan logs `EPERM: operation not permitted, copyfile ... _epub2.epub` on a network share
Books on a network file share are skipped during scanning. The log says WARN: [SCAN:watcher] Failed to open epub at /library/<Author>/<Book>/<Book>.epub; skipping with EPERM: operation not permitted, copyfile '/library/.../<Book>.epub' -> '/library/.../<Book>_epub2.epub'. Running the copy by hand inside the container works fine.
Resolution: Storyteller only works with EPUB 3, so on import it upgrades EPUB 2 files in place — and the default setting for that first writes a _epub2.epub backup next to the original. That write needs write permission on the library folder itself, which a read-only or squashed network share (SMB/NFS) usually does not grant. Testing with docker exec -it storyteller sh proves nothing, because that shell is root: the entrypoint drops the app to 1000:1000 (or whatever UID/GID you configure via env vars), so test with docker exec -u 1000:1000 storyteller cp <src> <dst> instead, and check the share's export options as well as the file mode — some mounts return EPERM on copy operations even when a plain write succeeds. If you cannot give the app write access to the share, switch the import mode to "copy" (available on recent versions), which writes the upgraded EPUB into Storyteller's own internal folder instead of alongside the source; read-only source libraries are otherwise not well supported yet.