Body:
I’m running TrueNAS SCALE GoldEye 25.10.0 (Community Edition), and I can’t get the built-in Choose Pool for Apps → Migrate Applications feature actually to move my Docker apps to a new pool.
Current setup:
-
Old pool: taltos (SSD, working Apps)
-
New pool: taltos2 (SSD, clean)
-
Docker and Apps services both start fine on taltos
What happens:
When I try to migrate, it fails almost immediately with:
Error: migrate_applications
Migration of ‘taltos/ix-apps’ to ‘taltos2’ not possible as taltos2/ix-apps already exists.
If I destroy the dataset and try again, I sometimes get:
[EFAULT] Docker service is not running
After that, the Apps page shows “Docker service not running,” even though Docker was running before.
If I switch the pool back to taltos, everything instantly works again — all apps return and usually start.
What I’ve checked:
-
zpool get altroot taltos2 → /mnt
-
After replication, mountpoints looked like /mnt/mnt/taltos2/.ix-apps/…
-
Fixed those with zfs set mountpoint=/mnt/taltos2/.ix-apps/…
-
Tried manually editing /data/docker.json to point to /mnt/taltos2/.ix-apps
-
Tried restarting Docker and Middlewares manually — no luck
Goal:
I just want to move the Apps environment to the new pool without rebuilding every container.
Questions for anyone who’s done this successfully:
-
Is there a clean workaround to manually point Docker and TrueNAS Apps at the new .ix-apps location?
-
Do I need to clear or temporarily unset altroot on taltos2 for this to work?
-
Has anyone found a reliable way to migrate apps between pools without having to reinstall them?
Any insight or step-by-step workaround would be really appreciated.
At this point, the only way I can restore functionality is by switching back to the original pool.
1 Like
I finally got this working, and it looks like the root cause wasn’t the replication or dataset layout at all — it’s a middleware database issue.
When you migrate apps to a new pool in GoldEye 25.10.0, the system replicates the ix-apps dataset correctly; however, it never updates the Docker configuration inside /data/freenas-v1.db.
That leaves middleware pointing to the old pool path, so the Apps screen comes up empty and Docker refuses to start.
I fixed it manually and confirmed it works 100% — no app reinstalls, everything came back instantly.
Back up the database first
cp /data/freenas-v1.db /mnt//freenas-v1.db.bak
Update Docker to point to the new pool
sqlite3 /data/freenas-v1.db “UPDATE services_docker SET pool=‘taltos2’ WHERE pool=‘taltos’;”
Verify it changed
sqlite3 /data/freenas-v1.db “SELECT * FROM services_docker;”
Then I cleaned up the filesystem paths:
grep -R “/mnt/taltos/” /mnt/taltos2/.ix-apps | cut -d: -f1 | sort -u > /tmp/taltos_paths.txt
while read -r f; do sed -i ‘s#/mnt/taltos/#/mnt/taltos2/#g’ “$f”; done < /tmp/taltos_paths.txt
And restarted Docker:
find /mnt/taltos2/.ix-apps/docker -xtype l -delete
systemctl restart docker
After that, everything came back:
- docker ps showed all containers running
- midclt call docker.config correctly pointed to taltos2
- Apps UI repopulated normally
So the migration actually works, but the middleware database doesn’t update the services_docker.pool entry automatically.
Hopefully this helps anyone else stuck in the same loop until iX fixes it in a future patch.
4 Likes
Hello, just wanted to say that I have the exact same issue. I have my apps on hdd pool and every time, after reboot application daemon crashes - error saying:
Critical
Failed to start docker for Applications: Docker service could not be started
only thing that brings the apps interface back is: sudo systemctl restart middlewared
I appreciate your post, however I am really hoping for a new patch soon.
Holy crap thank you! I was having this exact problem and spent some odd hours researching this to figure it out. I used your trick in conjunction with this guide from Beard5two (though I used the built-in UI ‘Replication Tasks’ module instead of the shell) to pull off my apps pool migration from my HDDs to SDDs. Though weirdly enough your last two commands say No such file or directory. None the less once, I swapped the pool over (after unsetting the old HDD pool) everything showed up!
1 Like