My question: I cant initiate Calibre, it get the New db location is invalid, please enter valid path error After some back and forth with the AI... SparkBox AI replied: π§ working on your SparkBoxβ¦ That log is just the container's normal startup boilerplate β calibre desktop-integration warnings that are expected/harmless, and no crash, no write error. It doesn't capture the actual moment you submit the DB-path form (Calibre-Web's app-level errors on that screen usually don't hit stdout the same way). So the container itself is healthy and running β the failure is happening inside the app's own error handling on that screen, not something crashing the container. At this point we've ruled out: - mount wiring (confirmed correct, /books is real) - SparkBox-managed folder perms (fixmediapermissions ran clean) - POSIX ACL grant (setfacl won't persist on this UGOS share) - world read/write via chmod (didn't help either) - container health (running fine, no crash) That's everything on my side. Since chmod and setfacl both failed to unblock it, and the container logs show no write error at all, this looks like either a UGOS-specific filesystem enforcement I can't fully see from POSIX tools, or a genuine Calibre-Web bug/behavior with this NAS's filesystem type that needs Tom's eyes. I'm not confident I can get further with what I've got here β click "Share to demox" below so Tom can see the full picture (the getfacl output, the chmod result, and the fact that both standard permission fixes didn't take). That combination is unusual enough it's worth him looking at directly. What I β¦(reply truncated β full chat sent to Tom)
16 replies
Chris wrote:
Hey EineBeBoP β that error used to show up because Calibre-Web's setup wizard won't accept an empty library folder, so SparkBox now auto-creates a starter database the first time it starts. Since your AI chat already ruled out perms/ACL/chmod, can you check one thing: does a file called metadata.db exist inside your books folder? If it's missing, that auto-create step is silently failing on your NAS, which lines up with the setfacl issue you already found. Let me know either way β if it's still stuck after that, I'm flagging this for Tom to look at the NAS side directly.
EineBeBoP wrote:
Nothing but 2 epub files in the folder. Thanks! Hidden files are visible in this viewer.
Chris wrote:
That confirms it -- no metadata.db means the library was never actually created there, so Calibre-Web will keep rejecting it no matter what's in the folder. This should get fixed automatically every time you run sudo sparkbox up (it tries to create that starter database in the background), so run that once and check the folder again for a metadata.db file. If it's still not there after that, let me know and I'll get it flagged as a bug on your box specifically.
EineBeBoP wrote:
I'll give it a shot asap but I know I've run that several times trying to T/S this myself. Thanks!
EineBeBoP wrote:
...I swear I've done this already but it took it this time! Its not seeing the 2 books currently in the folder, but I'll take some time to experiment with it. Thank you for the assist! / | | | | ) \ \| ' \ / | '| |/ / \ / \ \/ / ) | |) | (| | | | <| |) | () < |/| ./ \,|| ||\\/ \//\\ || SparkBox v1.6.545 - Self-Hosted Privacy Stack Created by Tom Spark | youtube.com/@TomSparkReviews Environment: NAS (generic) [INFO] Starting SparkBox... [INFO] Active modules: audiobookshelf core dashboard ebooks files media pihole p inchflat speedtest tailscale [INFO] Prepared 1 module config dir(s) for PUID=1000 PGID=10 [INFO] .env changed since last up β recreating the affected containers to pick u p new values [INFO] Tailscale is on β allowing the tailnet range (100.64.0.0/10) back out of the VPN tunnel so the apps behind it answer remotely. [INFO] audiobookshelf: configuration changed β recreating its containers [+] up 1/1 β Container sb-audiobookshelf Started 1.6s [INFO] core: configuration changed β recreating its containers [+] up 3/3 β Container sb-portainer Started 10.1s β Container sb-npm Started 10.2s β Container sb-homepage Started 10.2s [+] up 2/2 β Container sb-kavita Running 0.0s β Container sb-calibre-web Running 0.0s [INFO] files: configuration changed β recreating its containers [+] up 1/1 β Container sb-filebrowser Started 2.3s [INFO] media: configuration changed β recreating its containers [+] up 12/12 β Container sb-jellyfin-media Started 20.2s β Container sb-bazarr Started 20.3s β Container sb-deunhealth Recreated 5.3s β Container sb-seerr Started 20.2s β Container sb-gluetun Healthy 31.9s β Container sb-prowlarr Started 26.1s β Container sb-qbittorrent Started 26.2s β Container sb-radarr Started 26.1s β Container sb-sonarr Started 26.2s β Container sb-sabnzbd Started 26.1s β Container sb-lidarr Started 26.1s β Container sb-flaresolverr Started 26.0s [INFO] pihole: configuration changed β recreating its containers [+] up 1/1 β Container sb-pihole Started 29.2s [INFO] pinchflat: configuration changed β recreating its containers [+] up 1/1 β Container sb-pinchflat Started 9.6s [INFO] speedtest: configuration changed β recreating its containers [+] up 1/1 β Container sb-speedtest Started 26.9s [INFO] tailscale: configuration changed β recreating its containers [+] up 1/1 β Container sb-tailscale Started 9.2s [OK] SparkBox is running! [qbit-seed-limits] couldn't sign in to qBittorrent β skipping for now (retries on the next 'sparkbox up'; 'sudo sparkbox reset-password qbit' if it persists). [OK] Created empty Calibre library in /volume1/sparkbox-data/books β Calibre-Web's first-run screen will now accept the default /books. [INFO] Checking the media apps' wiring in the background (re-links qBittorrent/Prowlarr if it broke)... Service URLs: Audiobookshelf: Audiobookshelf: http://192.168.8.129:13378 Core Infrastructure: Nginx Proxy Manager: http://:81 Portainer: http://:9000 Homepage: http://:3000 TomSparkBox Dashboard: TomSparkBox Dashboard: http://:8443 Ebooks & Comics: Calibre Web: http://:8083 Kavita: http://:5002 File Browser: File Browser: http://:8086 Media Center: qBittorrent: http://:8089 Prowlarr: http://:8181 Sonarr: http://:8989 Radarr: http://:7878 Bazarr: http://:6767 Jellyfin (media bundle): http://:8096 Seerr: http://:5055 Lidarr: http://:8686 SABnzbd (Usenet): http://:8186 FlareSolverr: http://:No Notifiarr: http://:5454 Pi-hole: Pi-hole: http://:8053 Pinchflat: Pinchflat: http://:8945 Speedtest Tracker: Speedtest Tracker: http://:8765
Chris wrote:
That part's expected, not a bug -- Calibre-Web won't pick up files just because they're sitting in the folder, it only sees books added through its own Upload button. In Calibre-Web, go to Admin - Edit Basic Configuration - Feature Configuration, turn on Enable Uploads if it's off, then use Upload in the main library view to add your 2 epubs. They should show up right away.
EineBeBoP wrote:
Got it! Appreciate your time and help. Now to figure out why the arr stack keeps getting stuck when trying to add files to the JF library after download.
Chris wrote:
Since your books folder already needed a permission fix, this is probably the same kind of thing β some folders on this NAS don't keep write access the way we'd expect, so an app can see a file but can't move it in. Can you tell me exactly what you're seeing: does Sonarr or Radarr show an error when it tries to import, or do the files just never show up in Jellyfin? In the meantime, run sudo sparkbox check-media-perms β it'll tell you which folder is blocked. If it's still stuck after that, paste what you see here and I'll get it flagged for Tom.
EineBeBoP wrote:
Result: [OK] Your apps can read your existing media AND write to the download folders (P UID=1000). Error: Media pipeline β VPN β Download app β Indexers β Storage β Into your library Into your library: 42 finished downloads couldn't be moved into your library β that's why they don't show up in Jellyfin. Restart the Media apps β SparkBox repairs folder permissions on startup, which fixes the most common cause. If it stays stuck, ask Tom's community and mention "stuck import". It seems to have processed the majority of the queue, but its definitly stuck on one series (Ghost in the Shell 2026) and has only processed episode 1 of the 6 available. I went and manually cleared the queue in Sonarr and we will see what happens now I guess.
Chris wrote:
Clearing the stuck item and letting Sonarr re-grab it is exactly the right move here β since check-media-perms already came back clean, this looks like a per-episode hiccup with that one series rather than a folder permission problem. If it stalls again on the same show, check Sonarr's own History or Activity/Queue for that episode; it usually shows the real reason (bad filename, quality mismatch, etc.) instead of a generic import failure. If the other 41 files are showing up in Jellyfin now, the fix worked. If this one keeps failing after the retry, paste the exact error here and I'll get it flagged for Tom.
EineBeBoP wrote:
They're showing in the history as Episode download failed even though Qbitt has the episodes downloaded and they show in the file browser. Any idea how I get them to be recognized? Ive tried to manually copy them over to the TV folder but the file viewer just freezes while loading the file tree.
Chris wrote:
Good catch flagging that freeze β that's a much clearer signal than "episode download failed" on its own, and it lines up with the write hiccup your books folder had earlier, not a one-off per-episode thing like I guessed last time. I don't want to send you down another round of guesses here, so I'm flagging this straight to Tom with everything from this thread β the clean check-media-perms result plus that freeze β so he can look at it directly. I'll update you here once there's something concrete.
EineBeBoP wrote:
A note for Tom later then, I've removed the series from Sonarr and just restarted the series request through Seer and hoping it'll catch the previously downloaded files and add them. If not it may grab new copies and I'll delete the spares. Thanks!
EineBeBoP wrote:
Ah, so the files giving me issues are a torrent file downloading multi-part .rar files. Sonarr is seeing the sample file and realizing thats not what I want and ignoring it. Can I manually point sonarr to another torrent? or is there a way to handle the file type? OOh, or can we add Unpackerr to the pile of arrs you build into Sparkbox?
Chris wrote:
Nice detective work -- that explains it. Sonarr skips multi-part RAR downloads on purpose because it can't tell which files matter until they're unpacked, so it grabs the sample, decides it's not the episode, and marks it failed. Two ways forward: on that episode in Sonarr, click the magnifying glass icon (Interactive Search) and manually pick a different release -- one posted as a plain video file usually works fine. As for auto-unpacking, SparkBox doesn't build that in today, but it's a solid idea -- I've flagged it for Tom as a feature request.
Chris wrote:
Good news on this one β Unpackerr is now an app on the shelf in 1.6.556. Enable it from the Apps page, paste your Sonarr and Radarr API keys into its Settings (Settings β General β Security in each app), and multi-part RAR releases get extracted automatically before import. No more failed imports on those. Thanks again for tracing it all the way to the cause.