QEMU/KVM ACPI Guest Shutdown
Proxmox VE uses ACPI by default to send shutdown signals to the Virtual Machines (QEMU/KVM). That means that your Virtual Machines needs to support ACPI, so that it may react to such signals.
You should check if your VM reacts properly to the ACPI signals, as else the VM may not shutdown and Proxmox VE will force-stop it after a timeout on some API calls. Such a stop can lead to data loss in the worst case.
For Linux VMs you need to make sure that the ACPI event daemon is installed and running. Desktop distributions should already have it setup out of the box, but minimal- or server distributions often do not.
For Ubuntu and Debian install the 'acpid' package in the Virtual Machine.
apt update apt install acpid
For Windows, make sure an ACPI HAL is installed.
On older Windows Server 2003/8 also make sure to change policy to allow shutdown without being logged into the system. Start -> Run:
Find the following key:
Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Shutdown: Allow system to be shut down without having to log on
Change it to "Enabled".
Windows HAL Links
QEMU Guest Agent as Alternative
ACPI shutdown may not always work, one can setup the QEMU Guest Agent (QGA) as an alternative.
Just ensure that you enable it in the VMs Options in the Proxmox VE webinterface, and to install and run the agent inside the VM.