Need help migrating Apps pool on GoldEye 25.10.0 – migration always fails or Docker won’t start

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.