There was a check to clear flymode when exiting, but no check to prevent it from going back to flymode. So it got stuck in a loop of entering and exiting flymode.