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.
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.
1 Like
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.