I keep running into this problem with seerr, I had Tom AI summarize the issue: Platform: Ubuntu, SparkBox media module, sb-seerr Config path: /opt/sparkbox/modules/media/config/seerr Problem: Seerr is half-initialized — initialized:false in settings.json but stuck loading setup step 3 instead of step 1. Can't complete setup because step 3 requires an authenticated session/cookie that never gets created. What's been confirmed: - DB is clean: 0 rows in user and session tables (verified via keinos/sqlite3 container) - settings.json has initialized:false, empty Jellyfin block, mediaServerType=2 - Jellyfin API works: /Library/MediaFolders returns HTTP 200 with libraries from inside sb-seerr - WAL checkpoint run while container stopped — still 0 users/sessions - WAL/SHM files wiped, clientId rotated — no change - mediaServerType reset to 0 attempted - After every restart, DevTools shows 403 on /api/v1/settings/jellyfin and UI still opens at step 3 Question: What field or file in Seerr 3.2.0 actually controls which setup step loads? Is mediaServerType or another settings.json key causing it to skip to step 3 even with a clean DB and initialized:false?
9 replies
tomspark wrote:
You've done the hard part — proving the server side is clean (empty user/session tables, initialized:false). That's actually the tell: if SparkBox's copy of Seerr thinks setup hasn't started, but your browser keeps dropping you on step 3, the leftover state is in the browser, not the server. A stale login cookie from an earlier attempt is pinning you to step 3 with a session that no longer exists — which lines up exactly with your note that step 3 wants a cookie that never got created. Try opening the Seerr address in a fresh private/incognito window (or clear site data for just that address). It should land you back on step 1 where the Jellyfin sign-in actually happens. If it STILL jumps to step 3 from a clean incognito window, tell me and we'll treat it as our bug and dig into settings.json together.
Cthe_Enigma wrote:
Hey Tom, I tried clearing cookies/site data, using an incognito window, restarting my PC, and restarting the server. What I’m noticing now is that when Seerr loads, it briefly looks like it starts at Step 1, but then quickly jumps back to Step 3 almost like an auto-login, cached wizard state, or frontend redirect is being triggered. And now DevTools shows 401 on /api/v1/settings/jellyfin and UI still opens at step 3. Server-side, we had already confirmed the DB user/session tables were empty, initialized:false was set, the Jellyfin block was cleared, WAL/SHM were handled, clientId was rotated, and mediaServerType=0 was attempted. But the UI still ends up on Step 3, and the Jellyfin settings/sync request still fails. Any ideas on what else I should try?
tomspark wrote:
Okay — incognito plus a clean DB rules out your side entirely, so this one's on us. Here's what's happening: SparkBox auto-links Jellyfin into Seerr for you at install, and on your box that link half-finished. Seerr now thinks Jellyfin is its server (so it skips step 1) but never got a valid session — that's the 401 and the snap back to step 3. The "briefly step 1 then jumps" part is Seerr's own redirect-on-error behavior that we normally patch out. First thing to try: sudo sparkbox restart media — it re-applies that redirect patch and re-runs the Jellyfin link. Then reload Seerr and see if it holds on a real step. Either way, could you paste me what's in state/media-autoseed.log and state/media-finish.log? Those show exactly why the auto-link failed — and I'm flagging this so we fix the trap properly, not just for you.
Cthe_Enigma wrote:
Ah I see, I ran sudo sparkbox restart media but I am still put back to step 3; Here are the requested logs: ===== media-autoseed.log ===== [media-autoseed] First-run: pulling mcr.microsoft.com/playwright:v1.55.0-jammy (one-time, ~2GB, 60-180s)... v1.55.0-jammy: Pulling from playwright a2e211bf8ef2: Pulling fs layer 7cdd07fdf967: Pulling fs layer fe45efe6d7bf: Pulling fs layer 660ffc76f83b: Pulling fs layer fe45efe6d7bf: Download complete 660ffc76f83b: Download complete 660ffc76f83b: Pull complete 7cdd07fdf967: Download complete 7cdd07fdf967: Pull complete fe45efe6d7bf: Pull complete a2e211bf8ef2: Download complete a2e211bf8ef2: Pull complete Digest: sha256:55db7b712a981e9cc1ec757a4511cd01c5ed4e20bd7c84b2dee4e1d320102b9d Status: Downloaded newer image for mcr.microsoft.com/playwright:v1.55.0-jammy mcr.microsoft.com/playwright:v1.55.0-jammy [media-autoseed] Running media-autoseed.js in Playwright container... [autoseed] Installing playwright npm package... added 2 packages in 2s npm notice npm notice New major version of npm available! 10.9.3 - 11.14.1 npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.14.1 npm notice To update run: npm install -g npm@11.14.1 npm notice [autoseed] Starting auto-seed for Jellyfin (http://sb-jellyfin-media:8096) + Seerr (http://sb-seerr:5055) [autoseed] Jellyfin admin: sparkbox / <20-char pw [autoseed] Waiting for Jellyfin to be reachable... [autoseed] Driving Jellyfin wizard headlessly... [autoseed] wizard step 0: /wizard/start [autoseed] wizard step 1: /wizard/user [autoseed] wizard step 2: /wizard/library [autoseed] wizard step 3: /wizard/settings [autoseed] wizard step 4: /wizard/remoteaccess [autoseed] wizard step 5: /wizard/finish [autoseed] wizard step 6: /login?serverid=e7bbbfb95ee143999561e9447e5ceb9d&url=%2Fhome [autoseed] wizard completed [autoseed] Jellyfin wizard done, StartupWizardCompleted=true [autoseed] Signing in to Jellyfin API to obtain access token... [autoseed] got access token (user id 038d82e2...) [autoseed] Creating persistent Jellyfin API key... [autoseed] API key created: 048fba3f... [autoseed] admin user unhidden (shows in Jellyfin login picker) [autoseed] saved creds to /sb-state/jellyfin-admin-password.txt (mode 600) [autoseed] Waiting for Seerr to be reachable... [autoseed] Signing Seerr into Jellyfin... [autoseed] Seerr signed in to Jellyfin [autoseed] Done. Run sudo sparkbox media-finish next to create libraries + finalize Seerr. [media-autoseed] Auto-seed complete. Jellyfin admin saved to state/jellyfin-admin-password.txt (owner 1000:1000, 0600). [media-autoseed] Next: 'sudo sparkbox media-finish' to create libraries + finalize Seerr. ===== media-finish.log ===== [media-finish] Creating Movies/TV/Music under /opt/sparkbox/data/media/media/ (PUID=1000 PGID=1000) [media-finish] Jellyfin: added Movies library - /data/media/Movies [media-finish] Jellyfin: added TV Shows library - /data/media/TV [media-finish] Seerr: sync returned [{"id":"f137a2dd21bbc1b99aa5c0f6bf02a805","name":"Movies","enabled":false,"type":"movie"},{"id":"767bffe4f11c93ef34b805451a696a4e","name":"TV Shows","enabled":false,"type":"show"}] [media-finish] Seerr: enabled libraries f137a2dd21bbc1b99aa5c0f6bf02a805,767bffe4f11c93ef34b805451a696a4e [media-finish] Seerr: initialized=true, wizard complete. [media-finish] Media finish complete. Open [REDACTED] — main app (no wizard). [REDACTED]~$ sudo sparkbox media-finish [media-finish] Creating Movies/TV/Music under /srv/media-archive/ (PUID=1000 PGID=1000) [media-finish] Moonfin: opt-in disabled (MOONFINENABLED!=true in .env). Skipping. [media-finish] No Jellyfin API key in Seerr settings — user hasn't signed in to Seerr yet. [media-finish] Open http://<your-box:5055, sign in with a Jellyfin user, then re-run: [media-finish] sudo /opt/sparkbox/sparkbox media-finish
tomspark wrote:
Perfect, those logs nail it. Good news first: it actually set up correctly on day one — Jellyfin linked, Seerr initialized. But somewhere later Seerr lost its Jellyfin connection (that second media-finish run shows "No Jellyfin API key in Seerr settings"), and restart media won't redo the link because it sees the one-time setup already ran. So let's force just that step to run again: sudo rm -f /opt/sparkbox/state/media-autoseeded && sudo sparkbox media-autoseed && sudo sparkbox media-finish That clears the "already done" marker, re-signs Seerr into Jellyfin, then finalizes. Give it a minute or two (it drives Jellyfin headlessly behind the scenes), then reload Seerr — you should land straight on the Discover page, no wizard. If it still bounces you back, paste the fresh media-autoseed.log and I'll dig in from there.
Cthe_Enigma wrote:
Yes! I can confirm that seerr did work initially when I first installed sparkbox and got the media center; there was some kind of change, but I honestly couldn't pinpoint what it was. I ran the code you suggested but received this error message: [media-autoseed] Running media-autoseed.js in Playwright container... [media-autoseed] ERROR: media-autoseed.js exited non-zero. See /opt/sparkbox/state/media-autoseed.log. [media-autoseed] Fallback: complete Jellyfin + Seerr wizards manually, then run 'sudo sparkbox media-finish'. Here are the logs I am seeing: ===== media-autoseed.log ===== [media-autoseed] First-run: pulling mcr.microsoft.com/playwright:v1.55.0-jammy (one-time, ~2GB, 60-180s)... v1.55.0-jammy: Pulling from playwright a2e211bf8ef2: Pulling fs layer 7cdd07fdf967: Pulling fs layer fe45efe6d7bf: Pulling fs layer 660ffc76f83b: Pulling fs layer fe45efe6d7bf: Download complete 660ffc76f83b: Download complete 660ffc76f83b: Pull complete 7cdd07fdf967: Download complete 7cdd07fdf967: Pull complete fe45efe6d7bf: Pull complete a2e211bf8ef2: Download complete a2e211bf8ef2: Pull complete Digest: sha256:55db7b712a981e9cc1ec757a4511cd01c5ed4e20bd7c84b2dee4e1d320102b9d Status: Downloaded newer image for mcr.microsoft.com/playwright:v1.55.0-jammy mcr.microsoft.com/playwright:v1.55.0-jammy [media-autoseed] Running media-autoseed.js in Playwright container... [autoseed] Installing playwright npm package... added 2 packages in 2s npm notice npm notice New major version of npm available! 10.9.3 - 11.14.1 npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.14.1 npm notice To update run: npm install -g npm@11.14.1 npm notice [autoseed] Starting auto-seed for Jellyfin (http://sb-jellyfin-media:8096) + Seerr (http://sb-seerr:5055) [autoseed] Jellyfin admin: sparkbox / <20-char pw [autoseed] Waiting for Jellyfin to be reachable... [autoseed] Driving Jellyfin wizard headlessly... [autoseed] wizard step 0: /wizard/start [autoseed] wizard step 1: /wizard/user [autoseed] wizard step 2: /wizard/library [autoseed] wizard step 3: /wizard/settings [autoseed] wizard step 4: /wizard/remoteaccess [autoseed] wizard step 5: /wizard/finish [autoseed] wizard step 6: /login?serverid=e7bbbfb95ee143999561e9447e5ceb9d&url=%2Fhome [autoseed] wizard completed [autoseed] Jellyfin wizard done, StartupWizardCompleted=true [autoseed] Signing in to Jellyfin API to obtain access token... [autoseed] got access token (user id 038d82e2...) [autoseed] Creating persistent Jellyfin API key... [autoseed] API key created: 048fba3f... [autoseed] admin user unhidden (shows in Jellyfin login picker) [autoseed] saved creds to /sb-state/jellyfin-admin-password.txt (mode 600) [autoseed] Waiting for Seerr to be reachable... [autoseed] Signing Seerr into Jellyfin... [autoseed] Seerr signed in to Jellyfin [autoseed] Done. Run sudo sparkbox media-finish next to create libraries + finalize Seerr. [media-autoseed] Auto-seed complete. Jellyfin admin saved to state/jellyfin-admin-password.txt (owner 1000:1000, 0600). [media-autoseed] Next: 'sudo sparkbox media-finish' to create libraries + finalize Seerr. [media-autoseed] Running media-autoseed.js in Playwright container... [autoseed] Installing playwright npm package... added 2 packages in 2s npm notice npm notice New major version of npm available! 10.9.3 - 11.16.0 npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.16.0 npm notice To update run: npm install -g npm@11.16.0 npm notice [autoseed] Starting auto-seed for Jellyfin (http://sb-jellyfin-media:8096) + Seerr (http://sb-seerr:5055) [autoseed] Jellyfin admin: sparkbox / <20-char pw [autoseed] Waiting for Jellyfin to be reachable... [autoseed] Jellyfin wizard already complete — skipping wizard drive [autoseed] Signing in to Jellyfin API to obtain access token... [autoseed] FAIL: Jellyfin sign-in failed: HTTP 401 — Error processing request. [media-autoseed] ERROR: media-autoseed.js exited non-zero. See /opt/sparkbox/state/media-autoseed.log. [media-autoseed] Fallback: complete Jellyfin + Seerr wizards manually, then run 'sudo sparkbox media-finish'. [media-autoseed] Running media-autoseed.js in Playwright container... [autoseed] Starting auto-seed for Jellyfin (http://sb-jellyfin-media:8096) + Seerr (http://sb-seerr:5055) [autoseed] Jellyfin admin: sparkbox / <20-char pw [autoseed] Waiting for Jellyfin to be reachable... [autoseed] Jellyfin wizard already complete — skipping wizard drive [autoseed] Signing in to Jellyfin API to obtain access token... [autoseed] FAIL: Jellyfin sign-in failed: HTTP 401 — Error processing request. [media-autoseed] ERROR: media-autoseed.js exited non-zero. See /opt/sparkbox/state/media-autoseed.log. [media-autoseed] Fallback: complete Jellyfin + Seerr wizards manually, then run 'sudo sparkbox media-finish'. ===== media-finish.log ===== [media-finish] Creating Movies/TV/Music under /opt/sparkbox/data/media/media/ (PUID=1000 PGID=1000) [media-finish] Jellyfin: added Movies library - /data/media/Movies [media-finish] Jellyfin: added TV Shows library - /data/media/TV [media-finish] Seerr: sync returned [{"id":"f137a2dd21bbc1b99aa5c0f6bf02a805","name":"Movies","enabled":false,"type":"movie"},{"id":"767bffe4f11c93ef34b805451a696a4e","name":"TV Shows","enabled":false,"type":"show"}] [media-finish] Seerr: enabled libraries f137a2dd21bbc1b99aa5c0f6bf02a805,767bffe4f11c93ef34b805451a696a4e [media-finish] Seerr: initialized=true, wizard complete. [media-finish] Media finish complete. Open [REDACTED] — main app (no wizard). [media-finish] Creating Movies/TV/Music under /srv/media-archive/ (PUID=1000 PGID=1000) [media-finish] Moonfin: opt-in disabled (MOONFINENABLED!=true in .env). Skipping. [media-finish] No Jellyfin API key in Seerr settings — user hasn't signed in to Seerr yet. [media-finish] Open http://<your-box:5055, sign in with a Jellyfin user, then re-run: [media-finish] sudo /opt/sparkbox/sparkbox media-finish
tomspark wrote:
Ok — the autoseed hit a snag, and the log it points to will tell us exactly where. Can you paste the last chunk of it: cat /opt/sparkbox/state/media-autoseed.log | tail -30 That shows which step it couldn't get past (usually it's the Jellyfin or Seerr wizard handoff). Once I see that, I can give you the precise fix. And good news that it worked when you first installed — that means it's a recoverable state, not a broken install, so we'll get it back.
Cthe_Enigma wrote:
Here are those logs!: ~$ cat /opt/sparkbox/state/media-autoseed.log | tail -30 [autoseed] Seerr signed in to Jellyfin [autoseed] Done. Run sudo sparkbox media-finish next to create libraries + finalize Seerr. [media-autoseed] Auto-seed complete. Jellyfin admin saved to state/jellyfin-admin-password.txt (owner 1000:1000, 0600). [media-autoseed] Next: 'sudo sparkbox media-finish' to create libraries + finalize Seerr. [media-autoseed] Running media-autoseed.js in Playwright container... [autoseed] Installing playwright npm package... added 2 packages in 2s npm notice npm notice New major version of npm available! 10.9.3 - 11.16.0 npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.16.0 npm notice To update run: npm install -g npm@11.16.0 npm notice [autoseed] Starting auto-seed for Jellyfin (http://sb-jellyfin-media:8096) + Seerr (http://sb-seerr:5055) [autoseed] Jellyfin admin: sparkbox / <20-char pw [autoseed] Waiting for Jellyfin to be reachable... [autoseed] Jellyfin wizard already complete — skipping wizard drive [autoseed] Signing in to Jellyfin API to obtain access token... [autoseed] FAIL: Jellyfin sign-in failed: HTTP 401 — Error processing request. [media-autoseed] ERROR: media-autoseed.js exited non-zero. See /opt/sparkbox/state/media-autoseed.log. [media-autoseed] Fallback: complete Jellyfin + Seerr wizards manually, then run 'sudo sparkbox media-finish'. [media-autoseed] Running media-autoseed.js in Playwright container... [autoseed] Starting auto-seed for Jellyfin (http://sb-jellyfin-media:8096) + Seerr (http://sb-seerr:5055) [autoseed] Jellyfin admin: sparkbox / <20-char pw [autoseed] Waiting for Jellyfin to be reachable... [autoseed] Jellyfin wizard already complete — skipping wizard drive [autoseed] Signing in to Jellyfin API to obtain access token... [autoseed] FAIL: Jellyfin sign-in failed: HTTP 401 — Error processing request. [media-autoseed] ERROR: media-autoseed.js exited non-zero. See /opt/sparkbox/state/media-autoseed.log. [media-autoseed] Fallback: complete Jellyfin + Seerr wizards manually, then run 'sudo sparkbox media-finish'.
tomspark wrote:
That log nails it — thank you. The key line is 'Jellyfin sign-in failed: HTTP 401': the auto-setup can't log into Jellyfin because the saved admin password drifted out of sync, almost certainly when your media folder moved to /srv/media-archive. It's a known rough edge and I've sharpened our fix with your log. Quickest path back for you: open Jellyfin directly at your-box-ip:8096 and try signing in as 'sparkbox' with the password shown in your SparkBox dashboard under Settings - Passwords. If that logs you in, Jellyfin's fine — then open Seerr (:5055), sign in with that same Jellyfin account, and run 'sudo sparkbox media-finish' to re-link the two. If that password ALSO fails, tell me and I'll walk you through resetting Jellyfin's admin password so the auto-setup can take over again.