Error: Can't init vhd directory without using alias
-
Hi,
I got this error during the last backup. Any idea what could be wrong? Thanks.XO commit 99312
{ "id": "0mtxmc70v-3ew1fc28kiw", "start": 1789171202191, "status": "failure", "tasks": [ { "id": "0mtxmc714-no836gl44qs", "start": 1789171202200, "status": "success", "end": 1789171233085, "result": { "removedFiles": [], "changedFiles": [], "merge": false, "size": 0 }, "message": "clean-vm" }, { "id": "0mtxmcv1f-0b2n37nmhd1u", "start": 1789171233315, "status": "success", "end": 1789171236104, "result": "cbb23056-280d-224a-c8d7-d9f8d477fd39", "message": "snapshot" }, { "id": "0mtxmcx6w-67x8mlawksw", "start": 1789171236104, "status": "failure", "tasks": [ { "id": "0mtxmfj61-f15a842hptd", "start": 1789171357897, "status": "failure", "end": 1789171385911, "result": { "code": "NOT_SUPPORTED", "message": "Can't init vhd directory without using alias", "name": "Error", "stack": "Error: Can't init vhd directory without using alias\n at RemoteVhdDisk.init (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backup-archive/dist/disks/RemoteVhdDisk.mjs:74:41)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async openDisposableDisk (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backup-archive/dist/disks/index.mjs:32:9)\n at async Promise.all (index 0)\n at async checkDisk (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backups/_runners/_writers/_checkDisk.mjs:5:3)\n at async DiskConsumerVhdDirectory.write (file:///opt/xo/xo-builds/xen-orchestra-202609112300/packages/vhd-lib/disk-consumer/DiskConsumerVhdDirectory.mjs:98:7)\n at async writeToVhdDirectory (file:///opt/xo/xo-builds/xen-orchestra-202609112300/packages/vhd-lib/disk-consumer/index.mjs:43:10)\n at async RemoteAdapter.writeVhd (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backups/RemoteAdapter.mjs:487:14)\n at async asyncEach.concurrency (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backups/_runners/_writers/IncrementalRemoteWriter.mjs:276:31)" }, "message": "transfer" } ], "end": 1789171385913, "result": { "code": "NOT_SUPPORTED", "message": "Can't init vhd directory without using alias", "name": "Error", "stack": "Error: Can't init vhd directory without using alias\n at RemoteVhdDisk.init (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backup-archive/dist/disks/RemoteVhdDisk.mjs:74:41)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async openDisposableDisk (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backup-archive/dist/disks/index.mjs:32:9)\n at async Promise.all (index 0)\n at async checkDisk (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backups/_runners/_writers/_checkDisk.mjs:5:3)\n at async DiskConsumerVhdDirectory.write (file:///opt/xo/xo-builds/xen-orchestra-202609112300/packages/vhd-lib/disk-consumer/DiskConsumerVhdDirectory.mjs:98:7)\n at async writeToVhdDirectory (file:///opt/xo/xo-builds/xen-orchestra-202609112300/packages/vhd-lib/disk-consumer/index.mjs:43:10)\n at async RemoteAdapter.writeVhd (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backups/RemoteAdapter.mjs:487:14)\n at async asyncEach.concurrency (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backups/_runners/_writers/IncrementalRemoteWriter.mjs:276:31)" }, "message": "export", "data": { "id": "b9438bf1-1439-4aaf-b62f-31f3c7d3f93d", "isFull": false, "type": "remote" } } ], "infos": [ { "message": "Transfer data using NBD" }, { "message": "will delete snapshot data" }, { "data": { "vdiRef": "OpaqueRef:11cb87e5-ce7f-4a20-4051-a9033e0c218c" }, "message": "Snapshot data has been deleted" } ], "end": 1789171387177, "result": { "code": "NOT_SUPPORTED", "message": "Can't init vhd directory without using alias", "name": "Error", "stack": "Error: Can't init vhd directory without using alias\n at RemoteVhdDisk.init (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backup-archive/dist/disks/RemoteVhdDisk.mjs:74:41)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async openDisposableDisk (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backup-archive/dist/disks/index.mjs:32:9)\n at async Promise.all (index 0)\n at async checkDisk (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backups/_runners/_writers/_checkDisk.mjs:5:3)\n at async DiskConsumerVhdDirectory.write (file:///opt/xo/xo-builds/xen-orchestra-202609112300/packages/vhd-lib/disk-consumer/DiskConsumerVhdDirectory.mjs:98:7)\n at async writeToVhdDirectory (file:///opt/xo/xo-builds/xen-orchestra-202609112300/packages/vhd-lib/disk-consumer/index.mjs:43:10)\n at async RemoteAdapter.writeVhd (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backups/RemoteAdapter.mjs:487:14)\n at async asyncEach.concurrency (file:///opt/xo/xo-builds/xen-orchestra-202609112300/@xen-orchestra/backups/_runners/_writers/IncrementalRemoteWriter.mjs:276:31)" }, "message": "backup VM", "data": { "id": "f855838c-1130-75fc-ae72-158fc75241ae", "type": "VM", "name_label": "WSDB01", "progress": 0 } },NFS remote; jobs for all backup-up VMs are affected.
-
-
Thanks for pasting the whole log; that made this much easier to chase.
Wild guess, but I think this may be a regression from PR #10124 ("replace vhd-lib calls with abstract methods"), which was squash-merged onto
masterasadecd7306on 2026-09-11 at 09:42 UTC, just before your202609112300nightly was cut.masteris still sitting at99312eca2, with no fix (if any fix is needed, I'm out of my depth in this area) after that commit that I can find.Reading the code on
master, the transfer step now checks the VHD it just wrote and passes that data-directory path along while the.alias.vhddoesn't exist yet;RemoteVhdDisk.initthen refuses a directory path that isn't an alias. I could easily be wrong about that, though, and thread 11875 is a reminder that this same message has had more than one cause.If, by any chance, I've got it right, it would only affect repositories with "store backup as multiple data blocks" enabled. So does it also fail on a repository without that option?
Rolling back to a commit from before yesterday morning should get you going again in the meantime, and it's probably worth mentioning
@Team-XO-Backendso the people who own this code see it.And if I've made a total fool of myself with this "analysis", so be it.

Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login