CreateCurveOnSurface randomly fails

I got a situation NurbsSurface.CreateCurveOnSurface returns an invalid curve occasionally.

        for ll in range(20):
            _crv=rg.NurbsSurface.CreateCurveOnSurface(SRF,pp,0.01,False)
            if _crv and _crv.IsValid:
                print ll,"good"
                break
            else:
                print ll,"bad"

I get

0 bad
1 bad
2 good

Does anyone knows a remedy (I know the above code is already a remedy…)

Thanks!