Proxmox URL Doesn't Resolve

One day after futzing about with my Proxmox server I restarted it and noticed that it would not resolve the network name. However it was on the network and I could ping it from another machine. These are the steps I did on the physical machine to diagnose and fix the issue.

First I checked the IP and routes to make sure the server had a proper network configuration

ip a
ip route
ping 8.8.8.8

Everything looked fine so the problem was not the network. Next I checked the Proxmox web service

systemctl status pveproxy
journalctl -u pveproxy.service -n 20 --no-pager

The service had failed with status 255 and the logs showed Perl module errors like BEGIN failed in require PVE/Storage/Plugin.pm. This indicated that the service was broken because some Perl modules were mismatched.

I checked the repositories to make sure packages were coming from the right place. I had just the no-subscription repo enabled

ls /etc/apt/sources.list.d/
cat /etc/apt/sources.list.d/pve-enterprise.list
cat /etc/apt/sources.list.d/pve-install-repo

I double checked that the the enterprise repo was disabled ensuring that its line was commented out so only the no-subscription repo remained. I updated the package lists

apt update

Then I reinstalled the Proxmox stack to fix the broken modules

apt install --reinstall proxmox-ve pve-manager pveproxy pve-cluster pve-storage libpve-common-perl libpve-guest-common-perl libpve-http-server-perl libpve-storage-perl

After that I restarted the core services

systemctl restart pve-cluster
systemctl restart pveproxy

I verified that the web service was listening

ss -tulpn | grep 8006

and I could access the web interface at https://:8006. Finally I ran a full upgrade to make sure all packages were fully aligned

apt full-upgrade
systemctl restart pve-cluster
systemctl restart pveproxy

After these steps the Proxmox web UI was back online and the server was stable. The issue was a broken pveproxy service caused by mismatched Perl modules and repositories and reinstalling the stack on the physical machine fixed it.

Seems obvious in hindsight but I figured it would be worth making a post incase someone else runs into the same issue :)