How to replace running FreePBX server with better hardware?

After two attempts I’m stumped.

GOAL : replace running FreePBX server with same software but better hardware

We have FreePBX running on a dual core desktop machine.
We purchased better hardware (quad core), more RAM, etc.

We want FreePBX running on this new hardware.

Thus far we’ve installed FreePBX on the new hardware.
Backed up the running server and restored it on the new hardware.
Changed IP of new hardware to IP of old server and powered off the old server.

That doesn’t work well. The asterisk console scrolls nonstop errors about creating Contacts and pjsip errors in various c-libraries.

What steps are we missing here? And I’m looking for details.

One thing I discovered is that after switching to the new box we must reboot all the Grandstream phones.

Please offer your step-by-step instructions if you’ve done this sort of upgrade before. We’re seriously stumped over here.

PS - This is our “upgrade” process because if it doesn’t work we just fail back to the well behaved running machine on its older hardware.

I never had good luck with the backup and restore method in the past.

In recent years I have never needed to as I keep everything virtualized, so there is never a need to migrate for hardware.

The FreePBX 13 to 14 migration went well even though I did it early, so I think I will not have a need for this process any time soon.

This guide from FreePBX Hosting is a solid guide on getting a good backup made.
https://www.freepbxhosting.com/blog/complete-freepbx-backup/

Backups can only be restored to systems running the same major version. Additionally is can run smoother if the individual module versions are close.

If you are trying to migrate settings from different major versions, you want:
https://wiki.freepbx.org/display/PPS/Elastix+and+PBXinaFlash+to+FreePBX+Distro+Conversion+Tool