[Google Pixel Watch 2] badabing2003:
I think I know what happened.

Your first flash of the watch, ended like this

serving: 'S:\PixelFlasher\Firmware\aurora-ota-twd9.240205.001-2ece7bcf.zip' (~92%)
serving: 'S:\PixelFlasher\Firmware\aurora-ota-twd9.240205.001-2ece7bcf.zip' (~93%)
serving: 'S:\PixelFlasher\Firmware\aurora-ota-twd9.240205.001-2ece7bcf.zip' (~94%)
Total xfer: 2.00x
2024-02-06 20:24:03 Done flash script execution!
Sleeping 10 seconds ...
2024-02-06 20:24:43 User Pressed Done rebooting to system, continue
Updating connected devices ...

Getting package com.topjohnwu.magisk path on the device ...

2024-02-06 20:24:44 ERROR: Could not get package com.topjohnwu.magisk path.

Selected Device on 2024-02-06 20:24:43:
Device ID: REDACTED
Device Model:
Device Active Slot:
Device Mode: sideload
Has init_boot partition: False
Device Bootloader Version:
Device is Rooted: False

Basically, after completing the OTA flashing, PF prompted you with the dialog to reboot to system and when done to continue.

Which you did exactly that.

I think when you clicked the proper button on your watch, you immediately clicked on continue in PF, which it tried to get your device state, and because it was immediately followed, PF detected the watch still in sideload mode, that's why we see

Device Mode: sideload

This is interesting, because previously we determined that after completing the sideload flashing, the watch is not detected with adb nor with fastboot.

It must be that when you selected to reboot to system, it was briefly detectable, and PF captured that state.

Perhaps I can improve the messaage and suggest to wait till the watch actually reboots to system before hitting the continue button.

What happened with the second flash.

By this time PF's last knowledge of your watch state was sideload and not adb.

And in sideload mode, the device hardware value is empty

Hence why you saw the warning

2024-02-06 20:26:52 ERROR: Android device model does not match firmware Model aurora

Which is basically the part of PF that validates if you're flashing on a wrong device, (empty string != aurora, hence mismatch).

A scan of devices prior to hitting flash would have avoided that.

It's always a good idea to do scan specially after flashing if PF and device are out of sync.

Scan is slow, because PF checks many things, and it's even slower when you have multiple devices connected to your PC like I do. So PF does not try to do scan unnecessarily.

What happened at the end of flashing 2nd OTA.

This is the log portion

serving: 'S:\PixelFlasher\Firmware\aurora-ota-twd9.240205.001-2ece7bcf.zip' (~92%)
serving: 'S:\PixelFlasher\Firmware\aurora-ota-twd9.240205.001-2ece7bcf.zip' (~93%)
serving: 'S:\PixelFlasher\Firmware\aurora-ota-twd9.240205.001-2ece7bcf.zip' (~94%)
Total xfer: 2.00x
2024-02-06 20:35:22 Done flash script execution!
Sleeping 10 seconds ...

2024-02-06 20:35:32 Getting device: REDACTED state retry [4] times ...
Currently the device is in ERROR mode.
Updating connected devices ...
Updating connected devices ...
Flashing elapsed time: 487 seconds

After flashing, PF checks if the devices is a phone or watch.

By checking if the device is in the known watches list

And because the watch hardware was empty string, it wasn't considered a watch and the code took the path of phone instead of watch.

We know that if it is a watch, we don't want to get the state, because we can't, but for a phone, PF tries to get the state, so it performed that operation, which obviously failed as it should.

I'll make some improvements to not treat empty string hardware as a phone, just gracefully error out and exit.

The good thing is that, there's really not much difference between flashing a phone or watch other than skipping that step of checking the device.

By the way I noticed that PF does not report rooted neither of your phones (husky / cheetah) even though you flashed a patched init_boot.

You might want to enable su permissions on shell,

If PF knows that you're rooted, it uses the magisk in /data/adb/magisk to create patches, even if it is hidden, and that's faster as well.

There are other things you can do as root, that otherwise it wouldn't.

Of course it is a choice if you want to grant root permissions to shell.