Management

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.

ProxmoxR app icon

Managing Proxmox? Try ProxmoxR

Monitor and control your VMs & containers from your phone.

Try Free

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-agent in 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.md with 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.

ProxmoxR

Manage Proxmox from your phone

Monitor, control, and manage your clusters on the go.

Free 7-day trial · No credit card required