To be fair, upgrading across two major versions in one go (8.2 to 8.4 to 9.1) is the likely culprit here. The jump from PVE 8.x to 9.x involves a Debian base change (Bookworm to Trixie), and if the kernel or initramfs was not regenerated correctly at the end of the upgrade, the system cannot find the root filesystem and hangs at boot.
First thing to try: press Esc or hold Shift during boot to open the GRUB menu. Look for "Advanced options for Proxmox VE" and try booting one of the older kernel entries listed there. If an older kernel boots you are into the system and the fix is straightforward.
If you can get to a root shell, run these three commands in order:
update-initramfs -u -k all
update-grub
reboot
This rebuilds the initrd image for all installed kernels and updates GRUB to point to them correctly. This solves the hang-at-boot issue in the majority of post-upgrade cases.
If you are using ZFS as the root filesystem, the process is slightly different. PVE 9 updated the ZFS ABI and if the pool was not imported cleanly, boot will stall waiting for the ZFS pool. In that case boot from a PVE ISO in rescue mode, import the pool with: zpool import -f rpool, chroot into it, then run the update-initramfs and update-grub commands above.
One more thing worth checking: make sure you actually ran apt full-upgrade and not just apt upgrade during the 8.4 to 9.1 step. The 9.x upgrade requires full-upgrade to handle the package transitions between Debian releases properly. If you ran the wrong command some packages may still be at 8.x versions, causing the mismatch.