Noir has a hard coded +1 offset in the witness index used to explicitly describe gates via acir. This was meant to account for the historical fact that a const 0 is added to variables in the Ultra builder constructor. This hack propagates throughout the acir code. Its likely not worth trying to fix until the original UltraPlonk acir code has been cleanup up (removed entirely?). The corresponding Honk acir code is much simpler - it is easy to fix there.
Noir has a hard coded +1 offset in the witness index used to explicitly describe gates via acir. This was meant to account for the historical fact that a const 0 is added to variables in the Ultra builder constructor. This hack propagates throughout the acir code. Its likely not worth trying to fix until the original UltraPlonk acir code has been cleanup up (removed entirely?). The corresponding Honk acir code is much simpler - it is easy to fix there.