I have found several cases where the projection of a point on a surface fails.
The surface has a degenerate edge, i.e. it is a triangular B-Spline surface.
You can find an example in the attached face.
These are the coordinates of the point to project:
This is my code:
void ExampleFunction(gp_Pnt myPoint, Handle_Geom_BoundedSurface mySurface)
GeomAPI_ProjectPointOnSurf projector(myPoint, mySurface);
Standard_Real d = projector.LowerDistance();
d is 25.818358462510830, while the point lies on the surface.