From official n8AO docs, there are three known ways that should work.
If the water mesh is transparent = true, you could set: n8aopass.configuration.transparencyAware = true;
and it should work out of the box.
If the water mesh is not transparent, you could force to not receive AO by keeping the previous line and setting: watermesh.userData.treatAsOpaque = false;
and it should treat water mesh as transparent.
If the water mesh is not transparent and you don’t want to be treated as transparent by n8AO, you could set: watermesh.userData.cannotReceiveAO = true;
but keeo in mind this is not recommended as it has to be rendered twice and should have an impact on performance.