Proxmox VE Worker VM Deployment Fails When Default Local Storage Is Disabled

KB ID: 4906
Product: Veeam Plug-In for Proxmox VE
Published: 2026-08-31
Last Modified: 2026-08-31
mailbox
Get weekly article updates
By subscribing, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.

Cheers for trusting us with the spot in your mailbox!

Now you’re less likely to miss what’s been brewing in our knowledge base with this weekly digest

error icon

Oops! Something went wrong.

Please, try again later.

Challenge

When attempting to deploy or test a worker VM, the operation fails with the following errors:

Failed to deploy the worker VM: Cannot access a closed Stream.
Worker <VM Name> test failed: Cannot access a closed Stream.

This may also occur after an upgrade, when the existing worker VM is recreated and the redeployment fails.

Cause

This issue occurs because the storage that Veeam Backup & Replication is configured to use for worker VM deployment does not provide the ISO image and Snippets content types.

During deployment, the worker image is written to the ISO image directory of that storage, and the worker's cloud-init configuration is written to its snippets directory. By default, Veeam Backup & Replication uses the Proxmox VE local storage, which on a default installation carries both content types. This storage is separate from the storage where the worker VM's disks are mounted, so selecting a different storage for worker VMs does not remove the requirement.

The Proxmox VE web interface with the local storage selected on node proxmox01. The ISO Images tab lists the worker image file CommonWorker_1.0.0.120.img.

Solution

A worker VM can only be deployed to a host that provides file-level storage with the ISO image and Snippets content types enabled. The storage must also support snapshots. LVM storage that uses the Snapshots as Volume Chains (SAVC) mechanism cannot be used for worker files.

If the default local storage was disabled unintentionally, enable it on the affected Proxmox VE nodes, then test each existing worker VM before a job is run. If the default storage cannot be used in the environment, configure an alternative as described below.

Configuring an Alternative File-Level Storage

  1. In the Proxmox VE web interface, identify a file-level storage that is available on every node where a worker VM will be deployed. Confirm that both the ISO image and Snippets content types are enabled on it, and note the storage ID.

    In the example below, the storage ID is NFS-truenas.
The Proxmox VE storage edit dialog for an NFS storage. The ID field reads NFS-truenas, and the Content list shows ISO image and Snippets selected.
Example
  1. On the Proxmox VE host, review the storage definition in /etc/pve/storage.cfg to determine its path value, for example:
    nfs: NFS-truenas
            export /mnt/RAIDZ2-pool/proxmox-nested
            path /mnt/pve/NFS-truenas
            server 10.9.2.5
            content iso,images,snippets
            preallocation off
            prune-backups keep-all=1
    
Terminal output of cat /etc/pve/storage.cfg on node proxmox01, listing the local, local-lvm, proxmox01-sdb, and NFS-truenas storage definitions. The nfs: NFS-truenas entry shows path /mnt/pve/NFS-truenas and content iso,images,snippets.
Example
  1. Confirm that the expected directories exist at that path. In a multi-node cluster, confirm this on every node where a worker VM will be deployed.
    # ls /mnt/pve/NFS-truenas
    images  snippets  template
    
Terminal output of ls /mnt/pve/NFS-truenas showing the images, snippets, and template directories.
  1. Update the plug-in configuration to use the storage identified in step 1. The steps differ by deployment type:
Instructions for Veeam Software Appliance
  1. Log in to the Veeam Host Management Console.
  2. Export the following configuration file using the Host Configuration tab found under Logs and Services:
    /etc/veeam/platform-service-pve/appsettings.json
    
Veeam Host Management Console showing the "Logs and Services" section under "Host Configuration," with the "pve" configuration file selected and the "Export" button highlighted. The file path "/etc/veeam/platform-service-pve/appsettings.json" is shown.
  1. Open the downloaded file in a text editor and locate the VmImages section:
    "VmImages": {
        "ImageFileName": "",
        "ImageFilePrefix": "CommonWorker",
        "KeepImageOnClusterDeletion": false,
        "RemoteCloudInitDir": "/var/lib/vz/snippets/",
        "RemoteImagesPath": "/var/lib/vz/template/iso/",
        "CloudInitStorage": "local"
      },
    
  2. Update the following three values:
    • CloudInitStorage: the storage ID from step 1.
    • RemoteImagesPath: the storage path from step 2, followed by /template/iso/.
    • RemoteCloudInitDir: the storage path from step 2, followed by /snippets/.
    For the example storage used above, the updated values are:
        "RemoteCloudInitDir": "/mnt/pve/NFS-truenas/snippets/",
        "RemoteImagesPath": "/mnt/pve/NFS-truenas/template/iso/",
        "CloudInitStorage": "NFS-truenas"
    
    Proxmox VE uses a fixed directory layout for file-level storage, so these two paths always sit directly beneath the storage path. The default values shown above correspond to the local storage at /var/lib/vz.
  3. Save the file.
  4. Ensure there are no active Proxmox backup or restore tasks, and disable all scheduled Proxmox jobs.
  5. Import the edited configuration file using the Host Configuration tab found under Logs and Services.
Veeam Host Management Console in "Logs and Services" under "Host Configuration," with "pve" configuration file selected and the "Import" button highlighted. The file path "/etc/veeam/platform-service-pve/appsettings.json" is shown.
Security Officer Approval Needed

After clicking Import, a message may appear stating that the change has been staged and requires the Security Officer to approve the setting import operation.

Please reference Performing Security Officer Tasks for more information.

  1. Switch to the Services tab, search for the veeam-platform-service-pve.service service, select it and click Restart.
Veeam Host Management Console in "Logs and Services" under "Services," showing "veeam-platform-service-pve.service" selected and running, with the "Restart" button highlighted.
  1. Enable the jobs disabled in step 10, then test each worker VM before running a job.
Instructions for Veeam Backup & Replication on Windows
  1. On the Veeam Backup Server, open the following file in a text editor that was started as an administrator:
    C:\Program Files\Veeam\Plugins\PVE\Service\appsettings.json
    
  2. Locate the VmImages section:
    "VmImages": {
        "ImageFileName": "",
        "ImageFilePrefix": "CommonWorker",
        "KeepImageOnClusterDeletion": false,
        "RemoteCloudInitDir": "/var/lib/vz/snippets/",
        "RemoteImagesPath": "/var/lib/vz/template/iso/",
        "CloudInitStorage": "local"
      },
    
  3. Update the following three values:
    • CloudInitStorage: the storage ID from step 1.
    • RemoteImagesPath: the storage path from step 2, followed by /template/iso/.
    • RemoteCloudInitDir: the storage path from step 2, followed by /snippets/.
    For the example storage used above, the updated values are:
        "RemoteCloudInitDir": "/mnt/pve/NFS-truenas/snippets/",
        "RemoteImagesPath": "/mnt/pve/NFS-truenas/template/iso/",
        "CloudInitStorage": "NFS-truenas"
    
    Proxmox VE uses a fixed directory layout for file-level storage, so these two paths always sit directly beneath the storage path. The default values shown above correspond to the local storage at /var/lib/vz.
  4. Save the file.
  5. Ensure there are no active Proxmox backup or restore tasks, and disable all scheduled Proxmox jobs.
  6. Restart the Veeam PVE Service service.
  7. Enable the jobs disabled in step 9, then test each worker VM before running a job.
Hosts Added with Granular sudo Permissions

If the Proxmox VE host is added to Veeam Backup & Replication using a non-root account with granular sudo permissions, the sudoers entries that reference /var/lib/vz must also be updated to the storage path from step 2. If they are not updated, worker deployment continues to fail.

See KB4701: Granular sudo Permissions for Veeam Plug-in for Proxmox VE.

If this KB article did not resolve your issue or you need further assistance with Veeam software, please create a Veeam Support Case.

To submit feedback regarding this article, please click this link: Send Article Feedback
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.

Spelling error in text

Thank you!

Thank you!

Your feedback has been received and will be reviewed.

Oops! Something went wrong.

Please, try again later.

You have selected too large block!

Please try select less.

KB Feedback/Suggestion

This form is only for KB Feedback/Suggestions, if you need help with the software open a support case

By submitting, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.
Verify your email to continue your product download
We've sent a verification code to:
  • Incorrect verification code. Please try again.
An email with a verification code was just sent to
Didn't receive the code? Click to resend in sec
Didn't receive the code? Click to resend
Thank you!

Thank you!

Your feedback has been received and will be reviewed.

error icon

Oops! Something went wrong.

Please, try again later.