Volume tracker on mix cycles

Bumping this rather than a new thread as I think I may be running into something related.

I’m trying to do an aspirate, dispense, mix cycle. It happens to be from/to two quadrants of a 384 plate and at low volume. My code looks like this:

await lh.aspirate96(lh.get_resource('alpha_plate').get_quadrant(3), volume=2.0, 
                    flow_rate=2.0, 
                    transport_air_volume=0, 
                    pre_wetting_volume=0,
                    offset=Coordinate(x=1.5, y=1.5, z=-2.5))

await lh.dispense96(lh.get_resource('alpha_plate').get_quadrant(4), volume=2.0, 
                    flow_rate=2.0,
                    jet=True,
                    offset=Coordinate(x=1.5, y=1.5, z=-0.5))

await lh.aspirate96(lh.get_resource('alpha_plate').get_quadrant(4), volume=0.0, 
                    flow_rate=2.0,
                    transport_air_volume=0, 
                    pre_wetting_volume=0,
                    homogenization_volume = 10, 
                    homogenization_cycles = 2, 
                    speed_of_homogenization = 10,
                    offset=Coordinate(x=1.5, y=1.5, z=-2))

When it gets to the second aspirate96 (which is the mix cycle, note volume=0.0, see Mixing during dispense - #4 by ben) it gives the following error:

---------------------------------------------------------------------------
STARFirmwareError                         Traceback (most recent call last)
Cell In[13], line 1
----> 1 await lh.aspirate96(lh.get_resource('alpha_plate').get_quadrant(4), volume=0.0, 
      2                     flow_rate=1.0,
      3                     transport_air_volume=0.0, 
      4                     pre_wetting_volume=0.0,
      5                     homogenization_volume = 10, 
      6                     homogenization_cycles = 2, 
      7                     speed_of_homogenization = 10,
      8                     offset=Coordinate(x=1.5, y=1.5, z=-2))

File ~/Documents/FutureHouse/Lab/Automation/pylabrobot/pylabrobot/liquid_handling/liquid_handler.py:1456, in LiquidHandler.aspirate96(self, resource, volume, offset, flow_rate, blow_out_air_volume, **backend_kwargs)
   1454       well.tracker.rollback()
   1455     channel.get_tip().tracker.rollback()
-> 1456   self._trigger_callback(
   1457     "aspirate96",
   1458     liquid_handler=self,
   1459     aspiration=aspiration,
   1460     error=error,
   1461     **backend_kwargs,
   1462   )
   1463 else:
   1464   for channel, well in zip(self.head96.values(), wells):
...
   1208     he.errors[module_name].message += \
   1209       " (call lh.backend.request_name_of_last_faulty_parameter)"
-> 1211 raise he

STARFirmwareError: {'CoRe 96 Head': HardwareError('Maximum volume in tip reached')}, C0EAid0013er99/00 H002/53
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...

It seems like for some reason it thinks there is still volume in the tip after the prior dispense.

Some other details:
If I run the mix block (aspirate with volume=0) by itself, it works fine.
I swear that I ran the whole block at least once and it worked fine and has now decided to not work. I have no idea what that means, and I could be wrong.