I would venture to say that the most common issues relating to web hosting migration are ones of human error. There can be so many small pieces that it can be very easy to forget a piece. For me, it’s usually something not related to external visibility but something I’d done on the backend to improve something obscure. A global configuration setting, for example.
Beyond that, another issue is very common when moving from development to production, which may as well be called migration. A lot of users tend to be unaware of what is different about their development machine from their production machine. This causes unexpected behavior and some users become confused with how to proceed. You have to know every touch point within the environment that your app makes to be able to ensure that the environments are identical. You can’t trust two systems to be configured the same by default, there can be subtle version differences or default configurations in many places.
I don’t know if that gives you much to go on, but that’s my two cents :)