Mine was doing the same,and my transmitter was saying battery low.so had to turn everything off,charge the battery and transmitter and will try again.Mine did that, then the battery in the controller went flat. If all else fails the detail in the DJI Go 4 app states you can turn everything off and back on again to give it another go. Second attempt went through fine.
That trick nearly worked for me too. Stuck at 30% for 20 minutes. As soon as I unplugged the android it went to 99%. Then a time out message / reconnect cable appeared and now stuck at 99%. Going to shut it all down and use the desktop app....Mine was stuck at 30% too. As soon as I unplugged the phone from the controller it started moving again so I did not need to reboot the controller or phone. I was then able to plug the phone back in and complete the update without any more hitches.