[GH-ISSUE #76] [Bug]: TEMPLATES : PVE 400 error PVE 400 {"errors":{"storage":"storage 'ceph-templates' does not support vm images"},"data":null,"message":"Parameter verification failed.\n"} #91

Open
opened 2026-03-07 19:27:32 +03:00 by kerem · 7 comments
Owner

Originally created by @flpmonstro on GitHub (Mar 6, 2026).
Original GitHub issue: https://github.com/adminsyspro/proxcenter-ui/issues/76

Bug Description

Hi everyone ,

This occurs because I am using CEPH and the image comes as qcow2, so it must be imported first. Therefore, the backend needs to understand that it is a cephFs, download the img, create the VM, import the disk, and attach it to the VM.

An important point is that this will only work for those who have ssh enabled in proxcenter, because I believe the API does not do this.

Could you adjust this?

Steps to Reproduce

  1. Templates
  2. Image Catalog
  3. Deploy
  4. Deploy Now

Expected Behavior

Create virtual machine using image catalog.

Actual Behavior

Case with CEPHfs :

Image

Error :

Image

ProxCenter Version

44efa56

Proxmox VE Version

8.4.16

Browser

Chrome, FireFox

Logs / Screenshots

Image Image Image
Originally created by @flpmonstro on GitHub (Mar 6, 2026). Original GitHub issue: https://github.com/adminsyspro/proxcenter-ui/issues/76 ### Bug Description Hi everyone , This occurs because I am using CEPH and the image comes as qcow2, so it must be imported first. Therefore, the backend needs to understand that it is a cephFs, download the img, create the VM, import the disk, and attach it to the VM. An important point is that this will only work for those who have ssh enabled in proxcenter, because I believe the API does not do this. Could you adjust this? ### Steps to Reproduce 1. Templates 2. Image Catalog 3. Deploy 4. Deploy Now ### Expected Behavior Create virtual machine using image catalog. ### Actual Behavior Case with CEPHfs : <img width="906" height="499" alt="Image" src="https://github.com/user-attachments/assets/f071d242-7e3b-4b2f-8f6a-bf2c4c85e65a" /> Error : <img width="1418" height="225" alt="Image" src="https://github.com/user-attachments/assets/4657efa8-bfc5-4b94-a352-65032a8a8dbf" /> ### ProxCenter Version 44efa56 ### Proxmox VE Version 8.4.16 ### Browser Chrome, FireFox ### Logs / Screenshots <img width="902" height="494" alt="Image" src="https://github.com/user-attachments/assets/8a297dfb-5dd7-4778-9f53-a40d5b926449" /> <img width="891" height="505" alt="Image" src="https://github.com/user-attachments/assets/4320e537-e50c-48ef-b44f-2ad8bf917f1f" /> <img width="1427" height="232" alt="Image" src="https://github.com/user-attachments/assets/e08e2f75-2e5e-42b1-92f0-c75f7cb1dbb9" />
Author
Owner

@adminsyspro commented on GitHub (Mar 6, 2026):

Hi @flpmonstro, thanks for reporting this.

Could you provide more details about your storage configuration?

  1. What is the exact type of storage you're using for templates — CephFS or Ceph RBD?
  2. Could you share a screenshot of your Proxmox storage configuration (Datacenter → Storage) so we can see the content types enabled for each storage?
  3. Do you have a separate RBD pool configured for VM disks?

This will help us understand the exact setup and find the right fix.

<!-- gh-comment-id:4011743612 --> @adminsyspro commented on GitHub (Mar 6, 2026): Hi @flpmonstro, thanks for reporting this. Could you provide more details about your storage configuration? 1. What is the exact type of storage you're using for templates — **CephFS** or **Ceph RBD**? 2. Could you share a screenshot of your Proxmox storage configuration (Datacenter → Storage) so we can see the content types enabled for each storage? 3. Do you have a separate **RBD pool** configured for VM disks? This will help us understand the exact setup and find the right fix.
Author
Owner

@flpmonstro commented on GitHub (Mar 6, 2026):

Hi ,

  1. CephFs
Image
  1. YESSS

Thank you .... you are very fast ! :)

<!-- gh-comment-id:4011788050 --> @flpmonstro commented on GitHub (Mar 6, 2026): Hi , 1. CephFs 2. <img width="1395" height="206" alt="Image" src="https://github.com/user-attachments/assets/2d19ec5c-8307-420b-95e1-889034fc6c68" /> 3. YESSS Thank you .... you are very fast ! :)
Author
Owner

@adminsyspro commented on GitHub (Mar 6, 2026):

Thanks for the details @flpmonstro, that confirmed the issue!

Root cause: The deployment wizard was only showing file-based storages (dir, NFS, CephFS...) for the VM disk. Since CephFS is a distributed filesystem (not block storage), PVE rejects it for VM disk images — you need Ceph RBD (block storage) for that.

Fix (deployed in f221b93):

  • The storage selector now shows all storages that support VM disk images: dir, NFS, CIFS, Btrfs, RBD, LVM, LVM-thin, ZFS
  • CephFS is excluded from the VM disk storage list since it doesn't support the images content type
  • When you select a block-based storage (like RBD), the backend automatically finds a file-based storage on the node as a staging area for the image download, then imports the disk to RBD
  • Added backend validation with a clear error message if an incompatible storage is somehow selected

After updating, you should now see your Ceph RBD pool in the storage dropdown when deploying from the image catalog. The flow will be:

  1. Image downloaded to a file-based staging storage (e.g. local)
  2. VM created with disk on your RBD pool (imported from staging)
  3. Cloud-init configured and VM started

Let us know if this works with your setup!

<!-- gh-comment-id:4011825899 --> @adminsyspro commented on GitHub (Mar 6, 2026): Thanks for the details @flpmonstro, that confirmed the issue! **Root cause:** The deployment wizard was only showing file-based storages (dir, NFS, CephFS...) for the VM disk. Since CephFS is a distributed **filesystem** (not block storage), PVE rejects it for VM disk images — you need **Ceph RBD** (block storage) for that. **Fix (deployed in `f221b93`):** - The storage selector now shows **all storages that support VM disk images**: dir, NFS, CIFS, Btrfs, **RBD**, **LVM**, **LVM-thin**, **ZFS** - CephFS is excluded from the VM disk storage list since it doesn't support the `images` content type - When you select a block-based storage (like RBD), the backend automatically finds a file-based storage on the node as a staging area for the image download, then imports the disk to RBD - Added backend validation with a clear error message if an incompatible storage is somehow selected **After updating**, you should now see your Ceph RBD pool in the storage dropdown when deploying from the image catalog. The flow will be: 1. Image downloaded to a file-based staging storage (e.g. local) 2. VM created with disk on your RBD pool (imported from staging) 3. Cloud-init configured and VM started Let us know if this works with your setup!
Author
Owner

@flpmonstro commented on GitHub (Mar 6, 2026):

Hi,

Worked Here !

Image

In this feature, I miss the ability to create your own catalog, pointing to your image repository, and also in cloud-init, a space to use cloud-config. Have you thought about this?

<!-- gh-comment-id:4012404682 --> @flpmonstro commented on GitHub (Mar 6, 2026): Hi, Worked Here ! <img width="1204" height="220" alt="Image" src="https://github.com/user-attachments/assets/c5174f6e-afa3-4fc5-ac2d-37ca0947cab6" /> In this feature, I miss the ability to create your own catalog, pointing to your image repository, and also in cloud-init, a space to use cloud-config. Have you thought about this?
Author
Owner

@adminsyspro commented on GitHub (Mar 6, 2026):

Thanks for confirming the fix @flpmonstro! 🎉

Regarding your suggestions:

  1. Custom image catalog — Great idea, and it matches what @nothing-fr requested in #67. We're grouping both requests and actively working on this. You'll be able to add your own images (from a URL or local templates) to the catalog.

  2. Cloud-init cloud-config — Noted, we'll track this separately.

Stay tuned!

<!-- gh-comment-id:4012424226 --> @adminsyspro commented on GitHub (Mar 6, 2026): Thanks for confirming the fix @flpmonstro! 🎉 Regarding your suggestions: 1. **Custom image catalog** — Great idea, and it matches what @nothing-fr requested in #67. We're grouping both requests and actively working on this. You'll be able to add your own images (from a URL or local templates) to the catalog. 2. **Cloud-init cloud-config** — Noted, we'll track this separately. Stay tuned!
Author
Owner

@adminsyspro commented on GitHub (Mar 6, 2026):

@flpmonstro Custom Image Catalog is now live! (718ba73)

You can now add your own images to the catalog:

  • Remote URL — point to any .qcow2/.raw/.img hosted on your own repo
  • PVE Volume — reference an image already on a Proxmox storage (with an interactive volume browser to pick the file)

Go to Templates → Image Catalog → "Add Custom Image" button (top-right).

The deploy flow works exactly the same — for volumes it just skips the download step and imports directly.

Regarding the cloud-config request, we'll track that separately as a future enhancement.

<!-- gh-comment-id:4013328318 --> @adminsyspro commented on GitHub (Mar 6, 2026): @flpmonstro Custom Image Catalog is now live! (`718ba73`) You can now add your own images to the catalog: - **Remote URL** — point to any `.qcow2`/`.raw`/`.img` hosted on your own repo - **PVE Volume** — reference an image already on a Proxmox storage (with an interactive volume browser to pick the file) Go to **Templates → Image Catalog → "Add Custom Image"** button (top-right). The deploy flow works exactly the same — for volumes it just skips the download step and imports directly. Regarding the **cloud-config** request, we'll track that separately as a future enhancement.
Author
Owner

@flpmonstro commented on GitHub (Mar 6, 2026):

@adminsyspro thanks , I will test !!!! :)

<!-- gh-comment-id:4014462103 --> @flpmonstro commented on GitHub (Mar 6, 2026): @adminsyspro thanks , I will test !!!! :)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/proxcenter-ui#91
No description provided.