Solution to OTA updates not working with Magisk root on Android - No need to wipe the phone
If the OTA update just hangs on the "downloading update" message after you followed the normal process to "Magisk Manager → Uninstall → Restore Images" then it likely means there is some issue with the temporary restore on the boot.img file. Re-enable the root within Magisk before going any further as you first want to try an alternate method and you need to fully backup your device. It means that, try as you may, you are anyway going to have to restore the root manually, but you do not have to lose all your data and wipe the phone.
It will still only take 30 mins or so but that is way better than doing a full wipe and restoring 200 apps. Leave your bootloader in its unlocked status as changing that does an automatic wipe.
First backup the full device using Titanium Backup so that if you do have to wipe, you can restore everything. Note you must backup outside of the device as any wipe will also lose your backup stored on the phone, so copy the files via USB to your PC or use the built-in function in Titanium to backup to Google or Dropbox cloud.
For my Pixel 2 XL - I grabbed the latest full factory image from https://developers.google.com/android/images. Follow all the instructions but one key edit must be made BEFORE executing the flash-all script. Open the script with an editor (.bat for Windows or .sh for Linux) and remove the "-w" in the line starting with "fastboot -w update". This will prevent an automatic wipe as part of the process. Once done, reboot and check all is OK. The phone should be updated and in unrooted status.
After this, you need to manually enable your rooted status again with Magisk. I followed the instructions at https://android.gadgethacks.com/how-to/root-pixel-2-pixel-2-xl-install-magisk-0181117/. As I already still had the Magisk app on my phone I just had to redo steps 5 and 6 to patch the boot.img file. You already downloaded the factory image for the flashing above so you will use the same image.
And that as it, updated, all apps as they were, and rooted.
Disclaimer: I'm just providing this as a guide for others to try if they hit the same snag. This worked for me but I can't guarantee it will work fine on your phone so cannot accept any liability for loss of data or bricking of a phone.
|Factory Images for Nexus and Pixel Devices | Google APIs for Android | Google Developers