plan was reasonable. copy everything, test on the new host with a hosts file override, switch dns sunday night, sit and watch.
three of the four went exactly like that. boring, which is the goal.
the fourth had a scheduled job on the old server that pulled a feed and wrote it into the database every six hours. i knew about it. it was in my notes. what i didn't check was that the feed source had an ip allowlist on it, and the allowlist had the old server's address.
so the site came up fine, looked perfect, and quietly stopped updating. i noticed on wednesday because a page looked stale, not because anything alerted me, because i had no alerting on it, because it had worked for two years.
fix took ten minutes once i knew. finding it took an hour of increasingly annoyed grepping.
the actual lesson is that i tested the things that would break loudly and not one of the things that would break silently. loud failures are easy, you see them immediately. silent ones are the whole reason migrations have a bad reputation.
Source: r/HostingStories · by /u/Np080886