I’ve had this same issue occur to me many times.
My fix so far has been to shut down both controller and drone a couple of times until the connection is fully completed.
Haven’t open the drone itself though so can’t say if there is anything loose inside.