diff --git a/packages/xo-server/src/xo-mixins/backups.js b/packages/xo-server/src/xo-mixins/backups.js index 805fa0f6d..c6d9ca822 100644 --- a/packages/xo-server/src/xo-mixins/backups.js +++ b/packages/xo-server/src/xo-mixins/backups.js @@ -815,10 +815,17 @@ export default class { await Promise.all( mapToArray(delta.vdis, async (vdi, id) => { - streams[`${id}.vhd`] = await createVhdReadStream( - handler, - `${basePath}/${vdi.xoPath}` - ) + let path = `${basePath}/${vdi.xoPath}` + try { + await handler.getSize(path) + } catch (error) { + if (error == null || error.code !== 'ENOENT') { + throw error + } + + path = path.replace(/_delta\.vhd$/, '_full') + } + streams[`${id}.vhd`] = await createVhdReadStream(handler, path) }) )