Common Proxmox VE Issues and How to Fix Them
Troubleshoot the most common Proxmox VE problems including VMs that won't start, network issues, storage full errors, cluster quorum loss, backup failures, and more.
Troubleshooting Proxmox VE Like a Pro
Even the most well-maintained Proxmox VE environment will eventually throw an error. VMs refuse to start, storage fills up, cluster nodes lose communication, and backups fail at 3 AM. The difference between a quick resolution and hours of frustration often comes down to knowing where to look and what commands to run.
This guide covers the most common Proxmox issues and provides step-by-step solutions for each one. Bookmark it — you will need it sooner or later.
VM or Container Won't Start
This is probably the most common Proxmox issue. You click "Start" and nothing happens, or you get an error message. Here are the most frequent causes:
Lock Files
If a previous operation (backup, snapshot, migration) was interrupted, a lock file may remain and prevent the VM from starting.
# Check for lock files
qm config 100 | grep lock
# Remove the lock
qm unlock 100
# For containers
pct unlock 200
Insufficient Resources
The node may not have enough free RAM or CPU to start the VM. Check available resources:
# Check node memory usage
free -h
# Check how much memory is allocated to running VMs
qm list | awk '{print $1}' | tail -n +2 | while read vmid; do
qm config $vmid 2>/dev/null | grep "^memory:" | awk -v id=$vmid '{print "VM "id": "$2"MB"}'
done
Storage Not Available
If the storage backend where the VM disk lives is not accessible, the VM cannot start.
# Check storage status
pvesm status
# Try to activate the storage manually
pvesm set local-lvm --disable 0
QEMU Errors
Check the system log for detailed error messages:
# View QEMU errors for a specific VM
journalctl -u qemu-server@100 --no-pager -n 50
# Check the task log in the web UI, or via CLI
pvesh get /nodes/$(hostname)/tasks --typefilter qmstart
Network Connectivity Issues
Network problems in Proxmox can manifest at the host level, the bridge level, or inside the guest.
Bridge Configuration Problems
# Check bridge status
brctl show
# Verify the network configuration
cat /etc/network/interfaces
# Restart networking (caution: may disconnect you if connected via SSH)
ifreload -a
Firewall Blocking Traffic
The Proxmox firewall is disabled by default, but if you enabled it and misconfigured a rule, it can block all traffic including your own access.
# Check if the firewall is enabled
cat /etc/pve/firewall/cluster.fw | grep enable
# Temporarily disable the firewall at the datacenter level
pve-firewall stop
# Review firewall rules
cat /etc/pve/firewall/cluster.fw
cat /etc/pve/nodes/$(hostname)/host.fw
VM Has No Network
# Verify the VM's network adapter configuration
qm config 100 | grep net
# Check if the bridge exists and has the right port
brctl show vmbr0
# Inside the VM, check if the VirtIO driver is loaded
lspci | grep -i virtio
ip addr show
Storage Full
Running out of storage is one of the most disruptive issues. VMs may pause, backups will fail, and the web UI may become unresponsive.
# Check storage usage
df -h
pvesm status
lvs
# Find the biggest files consuming space
du -sh /var/lib/vz/dump/* # Backup files
du -sh /var/lib/vz/images/* # VM disk images
# Clean up old backups
find /var/lib/vz/dump/ -name "*.zst" -mtime +30 -delete
# If using LVM-thin, check thin pool usage
lvs -a | grep thin
lvs --segments -o+lv_size,seg_used,devices
If a thin pool reaches 100% usage, VMs will freeze. You need to either extend the thin pool or remove unused disks:
# Extend thin pool (if space is available in the volume group)
lvextend -L +50G pve/data
# Remove orphaned VM disks
lvs | grep vm-
# Compare with qm list to find disks that belong to deleted VMs
Cluster Quorum Loss
In a Proxmox cluster, quorum requires a majority of nodes to be online. In a three-node cluster, losing two nodes means quorum is lost, and the remaining node cannot make configuration changes.
# Check cluster status
pvecm status
# Check quorum status
pvecm expected 1 # DANGEROUS: Sets expected votes to 1, use only in emergencies
# View corosync status
systemctl status corosync
corosync-quorumtool
Warning: Setting expected votes to 1 should only be done as a last resort when you are certain the other nodes will not come back and start VMs simultaneously, which could cause split-brain scenarios.
Backup Failures
Backup failures are common and usually stem from storage issues, lock conflicts, or snapshot problems.
# Check the backup log
cat /var/log/pve/tasks/active
# View recent backup task details
pvesh get /nodes/$(hostname)/tasks --typefilter vzdump --limit 10
# Common fix: clear a stale lock that prevents backup
qm unlock 100
# Test a manual backup
vzdump 100 --storage local --mode snapshot --compress zstd
# Check available backup storage space
pvesm status | grep -E "backup|dump"
Common Backup Error Messages
- "Can't acquire lock" — Another operation holds the VM lock. Unlock the VM with
qm unlock. - "No space left on device" — Backup storage is full. Clean old backups or add more storage.
- "Snapshot failed" — The guest agent may not be running. Install
qemu-guest-agentin the VM.
High CPU or Memory Usage
When a Proxmox host shows high resource usage, you need to determine whether it is the host itself or a specific guest consuming resources.
# Identify top CPU-consuming processes
top -bn1 | head -20
# Check per-VM resource usage
qm list
for vmid in $(qm list | awk 'NR>1 {print $1}'); do
echo "=== VM $vmid ==="
pvesh get /nodes/$(hostname)/qemu/$vmid/status/current 2>/dev/null | grep -E "cpu|mem"
done
# Check if KSM is running (CPU overhead from memory deduplication)
cat /sys/kernel/mm/ksm/run
# Check for zombie processes
ps aux | awk '$8=="Z" {print}'
Web UI Not Loading
If you cannot access the Proxmox web interface at https://node:8006, the pveproxy service is likely not running or the port is blocked.
# Check pveproxy status
systemctl status pveproxy
# Restart the web interface
systemctl restart pveproxy
# Check if port 8006 is listening
ss -tlnp | grep 8006
# Check for certificate issues
pvecm updatecerts -f
# Review the pveproxy log
journalctl -u pveproxy --no-pager -n 50
If the web UI is completely unresponsive, you can still manage your VMs via the command line:
# Start/stop VMs without the web UI
qm start 100
qm stop 100
qm list
# Start/stop containers
pct start 200
pct stop 200
pct list
CEPH Health Warnings
If you run CEPH on Proxmox, health warnings indicate problems that need attention.
# Check CEPH health
ceph health detail
ceph status
# Common warnings and fixes:
# "HEALTH_WARN: clock skew detected"
apt install chrony && systemctl enable --now chrony
# "HEALTH_WARN: X nearfull osd(s)"
ceph osd df tree # Check which OSDs are full
# "HEALTH_WARN: N pgs degraded"
ceph pg dump_stuck degraded
Task Timeouts
Long-running tasks like live migrations, large backups, or storage replication can time out if they take too long.
# Check running tasks
pvesh get /nodes/$(hostname)/tasks --running 1
# Increase the vzdump timeout for large backups
# In /etc/vzdump.conf:
# lockwait: 180
# For migration timeouts, set a longer downtime limit
qm migrate 100 node2 --migration_type secure --timeout 600
Proactive Monitoring to Prevent Issues
Most of the issues above can be caught early with proper monitoring. Instead of waiting for something to break, set up alerts for storage usage, CPU/memory thresholds, and backup status. The earlier you spot a trend — like storage usage climbing 5% per week — the more time you have to address it before it becomes an outage.
ProxmoxR makes proactive monitoring practical by putting your infrastructure status in your pocket. A quick check of your cluster in ProxmoxR while waiting for coffee can reveal early warning signs: a VM gradually consuming more memory, a node's disk usage creeping toward 80%, or a backup that took three times longer than usual. These are the signals that prevent emergencies when you catch them early.
With ProxmoxR's multi-cluster support, you can review all your environments in a single pass — production, staging, and homelab — without logging into separate web UIs. If you spot an issue, you can take immediate action: restart a service, check the console, or verify resource allocation, all from the same app.
Quick Reference: Diagnostic Commands
# System overview
pveversion -v # Proxmox version and packages
pvecm status # Cluster status
pvesm status # Storage status
qm list # All VMs
pct list # All containers
# Logs
journalctl -u pvedaemon # Proxmox daemon
journalctl -u pveproxy # Web UI proxy
journalctl -u corosync # Cluster communication
tail -f /var/log/syslog # General system log
# Resource checks
free -h # Memory
df -h # Disk space
cat /proc/cpuinfo | grep "model name" | head -1 # CPU info
uptime # Load average
Pro tip: Keep a text file on each node at
/root/runbook.mdwith your most-used diagnostic commands and environment-specific notes. When something breaks at 2 AM, you will be glad you documented how your storage is configured and what each VM does.
Take Proxmox management mobile
All the features discussed in this guide — accessible from your phone with ProxmoxR. Real-time monitoring, power control, firewall management, and more.