[Google Pixel 4 XL Questions & Answers] sic0048:
I've always had very spotty success receiving and completing OTA updates from Google when on a rooted phone. On my 3a XL, I've been successful taking an OTA update probably 2 out of 8 months. So I have become an expert in sideloading the update. (My family's two other 3a XLs receive updates immediately and have no trouble completing them, so it definitely related to the fact that I'm rooted - even though I uninstall Magisk prior to attempting an update).

I created a thread in the Pixel 3a forum with directions on how to sideload and root your phone, but I will simply post that information here.

To sideload an update, follow these instructions.

- This will not factory reset your phone and you will not loose any data or files.

Optional Step 1 - Uninstall Magisk (so that it restores the stock boot.img). If you find yourself unable to boot into recovery, you will have to restore the stock boot.img. I've run into this issue on some Android 10 images, but not all.

Step 2 - Download to your computer the correct OTA image from here

Step 3 - Connect to your phone via ADB on your computer. You should see the device listed if you type the command "adb devices".

Step 4 - Boot your phone into recovery (type the command "adb reboot recovery").

Step 5 - The phone will have a green android robot with a red sign over it's open access panel. Press the power button and then the volume up button while still holding down the power button.

Step 6 - Select "Apply update from ADB" using the volume buttons to highlight the choice and the power button to select it to enter the sideload mode.

Step 7 - Using your computer, type "adb sideload ota_file.zip" where ota_file.zip is the name of the OTA file you downloaded in step 2.

Step 8 - Once the update finishes, reboot the phone to complete the update process. (The initial reboot can take some time as it has to optimize the apps behind the scenes, but it does so without the normal "Optimizing Apps" splash screen normally seen when taking an OTA update. Please be patient and let the phone finish the process. The more apps you have, the longer it may take. Do not force a reboot or turn it off during this initial boot).

After sideloading the OTA, you will have to reroot your phone using the magisk boot image patch installation method.

Step 1 - Obtain a stock boot.img file for the OS version/update that you are currently on. The easiest method is probably to download the applicable full stock image directly from Google. Unzip the files and unzip the second folder and you should find the boot.img file inside.

Step 2 - Copy the stock boot.img file to your phone's storage - probably to /sdcard or to /sdcard/downloads

Step 3 - Download and install the Magisk manager app on your phone. (link to the latest version can be found here). At one time early in the Android 10 cycle, users had to use the "Canary" Magisk builds. This is no longer true and you can use the stable version builds as long as it is version 20 or later. Of course users are still able to use the beta or Canary builds if they desire, but it is no longer a requirement.

Step 4 - Using the Magisk manager app, press "Install --> Install --> Select and Patch a File" - select the stock boot.img file that you put on your phone in step 2.

Step 5 - Magisk will modify the stock boot.img file and create a patched boot image file. It will save this modified file at "sdcard/Download/magisk_patched.img"

Step 6 - Connect to your phone via ADB on your computer. You should see the device listed if you type the command "adb devices".

Step 7 - Copy the patched boot image from your device to your PC and the adb folder. If you can’t find the file on your phone via MTP or Windows Explorer, you can pull the file by typing the command "adb pull /sdcard/Download/magisk_patched.img"

Step 8 - Boot your phone into the bootloader (type the command "adb reboot bootloader").

Step 9 - Flash the patched boot image to your device using this command, "fastboot flash boot magisk_patched.img"

Step 10 - Reboot (using command "fastboot reboot").

I hope that helps.