Disk is full: what stopped, what is safe to delete, and where to move your media
· Updated 18 September 2026 · SparkBox team
The Media pipeline says "Your media drive is essentially full", downloads sit at 99%, and an app or two has started crash-looping with no space left on device. On a NAS with terabytes free this feels impossible — and it is almost always the small system drive that filled, not your storage pool.
The 10-second version: Find which drive is full (df -h, or the dashboard's Storage card). If it is the system drive on a NAS, move Settings → Server Config → Media → Media Root to your storage pool — that is the real fix. Then clear the quick wins: finished torrents, the incomplete folder, docker image prune.
1. Which drive is actually full
Dashboard → Overview → the Storage card shows every drive. From the box:
df -hLook at the Use% column. The two that matter:
/(the system drive) — on a NAS this is often a 32–128 GB SSD. If it is at 95%+, apps start failing all over: logs can't be written, databases can't grow, the dashboard itself gets slow.- Your storage pool —
/volume1on UGREEN and Synology,/mnt/…on most Linux boxes. This is where media should live.
Check where SparkBox is writing: Settings → Server Config → Media → Media Root. If it starts with /opt/sparkbox and /opt is on the small system drive, you have found the problem.
2. Move your media to the big drive (the real fix)
Do it in this order so nothing re-downloads and the apps keep their libraries:
- Create the target folder on the pool, owned by your SparkBox user:
sudo mkdir -p /volume1/sparkbox/media && sudo chown -R 1000:1000 /volume1/sparkbox/media(your PUID:PGID if not 1000). - Copy the existing media across, preserving ownership:
sudo rsync -a --info=progress2 /opt/sparkbox/data/media/ /volume1/sparkbox/media/. Wait for it to finish. - Dashboard → Settings → Server Config → Media → Media Root → enter the new path → Save. The media apps are recreated pointing at it (about a minute). Inside the apps the path is still
/data, so libraries, queues and Seerr requests are untouched. - Open a movie in Jellyfin to confirm it plays from the new place, then delete the old copy:
sudo rm -rf /opt/sparkbox/data/media.
Already have a library on the NAS from before SparkBox? Point SparkBox at existing NAS media covers that variant, including the ownership catch.
Photos are separate: Settings → Server Config → Media → Photos Path moves Immich's library the same way (move the files first, then the setting).
3. Quick wins — safe to delete
- Finished torrents you no longer seed. qBittorrent → select → Remove with files if the file has already been imported into your library (Radarr/Sonarr copy or hard-link it on import; if hard-linked, removing the torrent frees nothing — that's normal and fine).
- The incomplete folder.
<Media Root>/downloads/incompletecollects abandoned partial downloads. Anything not currently in the qBittorrent/SABnzbd queue can go. - Old Docker images. Every app update leaves the previous image behind.
sudo docker image prune -aremoves images no running container uses — often 5–20 GB on a box that has been updating for months. Safe; the next update just pulls what it needs. - Old backups.
/opt/sparkbox/backups— keep the newest two. - Jellyfin transcode cache — cleared automatically, but on a stuck box
/opt/sparkbox/modules/jellyfin/config/cache/transcodescan be emptied while Jellyfin is stopped.
Never delete /opt/sparkbox/modules/<app>/config or /opt/sparkbox/state — those are the apps' own data and settings, not caches.
4. After you have freed space
Apps that crashed on a full disk recover on their next automatic restart; if one stays down, Apps → app → Restart. qBittorrent resumes paused downloads by itself. Run the checkup (Tom AI: "run a checkup") to confirm the Storage step is green again.
Keep the pipeline card's "Getting tight" warning in mind next time: it fires at a few GB free, which is usually a movie or two before things stop.
Frequently asked
My NAS has terabytes free — why does it say the disk is full?
Because SparkBox is writing to the small system drive, not your pool. Move Media Root to the pool (section 2).
What is safe to delete?
Finished torrents you don't seed, the incomplete folder, old Docker images, old backups. Never the apps' config folders.
Will moving Media Root re-download everything?
No — move the files first, then change the setting. The path inside the containers stays /data, so the apps keep their libraries.
Questions, or did this not match your box?
Every guide here came from a real problem someone hit. If yours behaves differently, say so — that is how these get corrected, and how the fix gets prioritised.
We answer there rather than in a comment box, because that is where the people who have already solved it are.