When upgrading MainsailOS to Debian Trixie (aarch64) or copying an old /home/pi backup onto a fresh Trixie install, Klipper, Moonraker, and Crowsnest will all fail to start. The root cause is the same for everything: the old install was 32-bit ARM with Python 3.9, the new image is 64-bit aarch64 with Python 3.13. Every virtualenv, compiled .so, and native binary from the old install is incompatible.
This guide covers the full process: backing up your old install, flashing the new image, restoring your data, and fixing all compatibility issues.