dFdy always returns zero vector when using it with UV coordinates

When applying a normal map on my terrain black spots appear. After investigating I suspect that the problem is caused by the function perturbNormal2Arb.
I have a regular terrain, no degenerate triangles.
But somehow dFdy( vUv.st ) always returns (0.0, 0.0) in perturbNormal2Arb
The dFdy function is returning non-zero values when using it with other data, so there is no software installation or hardware problem.
Here are some fragment shaders and their outputs to illustrate the problem.

void main() 
{
	gl_FragColor = vec4(vUV.s, vUV.t, 0.0, 1.0);
}

There is a UV gradient in both the x as well as y direction.

void main() 
{
	vec2 st0 = normalize(dFdx( vUV.st ));
	gl_FragColor = vec4(st0.s, st0.t, 0.0, 1.0);
}

dFdx is working fine.

void main() 
{
	vec2 st0 = normalize(dFdy( vUV.st ));
	gl_FragColor = vec4(st0.s, st0.t, 0.0, 1.0);
}

But with dFdy everything is zero.

did you find out why? i’m having a similar problem

From the first example:
gl_FragColor = vec4(st0.s, st0.t, 0.0, 1.0);

will not be showing the negative derivatives? Perhaps

gl_FragColor = fract(abs(vec4(st0.s, st0.t, 0.0, 1.0))); //will reveal that they are not truly 0