I just manually rebooted into recovery (power + vol up), which required unplugging my phone. An Ubuntu splash screen appeared, so I plugged it back in and pressed 'Ignore' on the error, and it's stuck on 'Flashing...' again with info: ERROR IGNORED in the log.

@jamieweb Trying to remember when i did mine I always had a bit of an issue with the usb connection so check that is solid and stable at the phone end even tape the cable down to stop it moving, Also try numerous cables. Sometimes version 0.1.12 works when others don't. You did the right thing by ignoring that update message. You can restart the installer at any point if it seems stuck but it took awhile IIRC on the MX4. If it appears stuck try quickly unplugging and plugging the usb back in at pc/laptop end it sometimes forces things along. The main thing is keep trying. Oh and double check Dev mode, oem unlock etc. all the usual stuff yo have probably done already. Good luck.

@jamieweb I also had this error on Meizu Pro5, my solution was to modify the ubports-installer in order to ask the user to manually reboot the phone into recovery when this error occured, The installer wait and when your phone is in recovery, it perform the next step (downloading image and pushing it to the phone).

@AlainW94 Ah right, so is ubports-installer actually broken for Meizu phones? Or is this an intermittent issue? I've never seen anybody else use ubports-installer with a Meizu actually, most of the videos I've seen have been Nexus or FairPhone.

If you can securely share the modified tool then I'll have a look, but I'd prefer source code or a patch file, I'm not running an untrusted binary.

@Lakotaubp Thanks for the info. I'm in Android Dev mode with USB debug enabled, then I power off and boot into fastboot mode, connect the phone and start the installer. It's an original MX4 Ubuntu Edition so the bootloader should be already unlocked (I had previously flashed a Flyme recovery image onto it).

Then, after starting the installer, it fails as I described above. I unplug, go into recovery and then reconnect, ignore the error, and it says 'Flashing...`.

How long does the flashing process normally take? I've left it for around 45 minutes with no sign of progress. There's no network activity on my machine so it's not downloading anything.

@jamieweb Magic Device tool is no longer supported as far as I know. This is the only method I know of and have used. Maybe someone else knows something else. Main thing you need to get back to Cannonical UT first.

@Lakotaubp Ok, thanks for the info. Once I've done this, is it permanent? Or do I have to do it again every time I want to reflash UBports?

I'll have to spin up a sandboxed machine for this, I don't want to run all those tools on any of my systems. Does UBports installer overwrite all of the original Canonical UT stuff from those guides? Or will there be insecure/untrusted code left behind?

@AlainW94 Thanks for this. Will it prevent me from having to do the restore to the original Canonical UT like @Lakotaubp has detailed? Or do I still need to do that, and then patch ubports-installer with your code afterwards?

@jamieweb Good question, I don't know why we have to step first into the installation of Canonical version. If I was you (easy to say), I tried first to flash the ubuntu recovery, then I start the phone on it, and try to use ubports-installer, if that works, you have gain a lot of time, if not.... You will have to reinstall it. During my issue with my IMEI, I played a lot with the phone by switching between Flyme and UT, all the time, the only thing I did was to flash the ubuntu recovery, start on it and run the modified ubports-installer to get UT back (without having to re-install the original Canonical first).

@jamieweb Don't take this as gospel but Flyme has a locked bootloader you can't get in. UBports is not a standard ROM you need UBports Recovery for the installation so you cannot just flash it. You need the original UT first or UBports will not install on the MX4. As far as I know you will not have any insecure/untrusted stuff left. That is what UBports is after all. Safe and secure. The exact technical reason for this method is above my knowledge.
I did exactly what you have UT to Flyme back to UT then to UBports UT using the tools mentioned.