diff --git a/extensions/Servers/Proxmox/Proxmox.php b/extensions/Servers/Proxmox/Proxmox.php index 380a39d9a..2f568ff1b 100644 --- a/extensions/Servers/Proxmox/Proxmox.php +++ b/extensions/Servers/Proxmox/Proxmox.php @@ -830,7 +830,16 @@ class Proxmox extends ClassServer $ipv6 = $this->getAvailableIps($node, $settings['ipv6'], 'ipv6'); } - $vm_id = $this->request('/cluster/nextid')->json()['data']; + // Get the next VMID by finding the maximum existing VMID and adding 1 + // This ensures we never reuse old VMIDs from deleted servers + $clusterResources = $this->request('/cluster/resources', 'get', ['type' => 'vm'])->json()['data'] ?? []; + $maxVmId = 99; // Default minimum VMID in Proxmox is 100 + foreach ($clusterResources as $resource) { + if (isset($resource['vmid']) && $resource['vmid'] > $maxVmId) { + $maxVmId = (int) $resource['vmid']; + } + } + $vm_id = $maxVmId + 1; $password = Str::password(16);