My question: Why is Jellyfin not starting? SparkBox AI replied: You updated Jellyfin, and now the web UI just sits on "Server is still starting up" — forever. The container shows as running (or even "healthy") but the actual app returns a 503, and a health check … Full guide: https://tomsparkbox.com/guides/fix-jellyfin-stuck (Answered instantly from the SparkBox knowledge base — if this doesn't quite match your situation, just say so and I'll take a proper look.) What I still need help with: (describe what didn't work or what's still broken)
5 replies
Chris wrote:
Thanks for posting. The usual reason Jellyfin sits on "Server is still starting up" after an update is that the database migration is still finishing — it can look stuck while it's actually working, especially on Windows/WSL where disk access is slower. One first step, and it clears most cases on its own: in your SparkBox Linux terminal, restart the Jellyfin container and then leave it entirely alone for a full five minutes (no refreshes, no repeated restarts): sudo docker restart sb-jellyfin-media If it's still on "starting up" after that, the real error is in the last lines of the container's log, not the repeating StartupCheck lines. Run this and paste back the final 15-20 lines (please redact anything that looks like an address or token): sudo docker logs sb-jellyfin-media --tail 100 That tells us whether it's a slow migration or something else.
brucewayne wrote:
Hi Chris, thank you for your response. Getting this when trying to restart JellyFin Error response from daemon: Cannot restart container sb-jellyfin-media: failed to create task for container: failed to create shim task: OCI runtime create failed: could not apply required modification to OCI specification: error modifying OCI spec: failed to create the automatic CDI modifier: failed to generate CDI spec for mode "auto": failed to construct device spec generators: failed to initialize NVML: Driver Not Loaded Looks like this is a nVidia driver issue. Will investigate further. But get nothing when trying to get the tail of the logs. Kind regards, Warren
Chris wrote:
Your read is right — that error is the NVIDIA driver, not Jellyfin or your library. Jellyfin is set to use the GPU for transcoding, and the container refuses to start because the driver behind it isn't currently available on the server. The 'NVML: Driver Not Loaded' part is the container runtime saying it can't reach the NVIDIA driver. Your media files are untouched — the container just can't bind the GPU it was built expecting. And the empty docker log is expected: the container fails before it ever runs, so there's no new output to read. One read-only check tells us which half of this it is — in your SparkBox Linux terminal: sudo nvidia-smi - If it lists your GPU with a driver version (e.g. 'Driver Version: 555.x'), the driver is actually alive and we nudge the container — reply with the first lines it prints. - If it prints a failure ('NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver'), the driver isn't loaded on the host — that usually follows a reboot or a kernel/driver update. Rebooting the server usually reloads it; if it stays gone, the driver needs reinstalling for the current kernel, and sparkbox doctor will name exactly what's missing. If you don't rely on GPU transcoding and just want Jellyfin back quickly, there's a supported one-field change instead: Settings → Server Config → expand 'Advanced — show raw configuration' → set Hardware Transcoding to none → Save. SparkBox rebuilds Jellyfin without the GPU and it runs in software-transcode mode (what every box without a GPU uses) and starts normally. Reply with what nvidia-smi prints and we'll go from there.
brucewayne wrote:
All sorted now, thanks. Using the nVidia 580 drivers which seem to work fine.
Chris wrote:
Excellent! Glad you got it working with the NVIDIA drivers. Let us know if you need anything else.