"camera.project" always work.
But when the marker.position is actually behind the camera, it's not possible to get a reprojection of the marker in the camera system.
So when it happens, camera.project return None, which is actually a true result.
But same image is visible in GUI marker panel when looking at marker info. Error on this image is of course huge (actually bigger than the image size), but it still exist.
I may like to reproduce this error with my script