It's possible to create unlimited quantities of any fluid when using both Mekanism and Inspirations.
Forge: 14.23.5.2831
Mekanism: 9.7.7.378
Other relevant version: Inspirations 0.2.4
Nothing appears in the log about the dupe.
The cause of this problem is here: https://github.com/mekanism/Mekanism/blob/0d4b50908f1b8a5334b436d243f2cb97b014d687/src/main/java/mekanism/common/tile/transmitter/TileEntityMechanicalPipe.java#L60-L62
First, we call container.drain(1600, false) on the cauldron to see how much fluid it will give us. It only has 1000mB in it, so it returns a FluidStack with an amount of 1000. Next, we call takeFluid(1000, true) to try to put all 1000mB in the pipe. Suppose that there's 15800mB in the pipe, so it can only hold 200mB more. Now, takeFluid will only add 200mB (since that's all that fits), and will thus return 200. Finally, we call container.drain(200, true) to remove the fluid from the cauldron. Since the cauldron doesn't have the granularity to remove only 200mB of fluid, that returns 0 and it removes nothing. Our mistake is that we ignore the result of that call and let the fluid be added to the pipe anyway.
My report about this at KnightMiner/Inspirations#124 was closed, with @KnightMiner saying the problem is on our side.
I guess the only way to handle this is to simulate the amount we have room for instead of the amount we are able to pull. Probably by making a method getAvailablePull, that does a Math.min(getPullAmount(), space remaining). Honestly we probably should go through and check to see if there are any other places we have fluid pulling (or gas pulling) and make sure they also don't try to simulate more than they can receive anyways.
Fix available in 9.7.8
Most helpful comment
Fix available in 9.7.8