Saving an audiobook cover fails with ENOENT and a duplicated path prefix
Updating a book's metadata to use the audiobook's embedded cover stopped working. The log shows Error: ENOENT: no such file or directory, lstat '/library/Author Name/Book Title (1234)/library/Author Name/Book Title (1234)/Audio Cover.jpg' -- everything except the filename is repeated. It happens both for books ingested from a watch folder and for uploads, and the ENOENT kills the worker so the cover update never finishes. Several version upgrades and container restarts have not helped.
Resolution: This is a Storyteller bug, not a problem with your library layout: when writing the audio cover sidecar it prepends the book directory to an already-absolute path, producing <book dir>/<book dir>/Audio Cover.jpg, which throws ENOENT and takes down the worker handling the metadata update, so nothing is saved and a stray duplicated sidecar can be left next to the media. Upgrading and recreating the container does not work around it. Two workarounds: place the cover image as Audio Cover.jpg in the book's folder *before* you add the audiobook audio file to the watch folder, so the right cover is picked up at ingest time and no later write is needed; or, in the web UI, switch the audio cover, then toggle the display back to the text cover before pressing Update -- the metadata save then completes without hitting the doubled path. Pressing Update while the audiobook cover is the active one reproduces the ENOENT every time.