FreePBX shows an extension registered but the extension shows unregistered

I somehow managed to crash my nicely-working FreePBX13 system, so I decided I would do a fresh install on a new physical server. I thought I had duplicated everything, but my phone won’t register (a Grandstream GXP2140). Both the Dashboard and the Asterix report show the extension as registered. If I call in through a trunk routed to the extension it rings and I can answer the call. However, the phone status reports that the extension isn’t registered. I’m running the latest FreePBX 13 distro with Asterix 13.

I’ve worked on this for hours and I’m at a complete loss.