Can the ground be a plane? Does it have to be inclosed? The ray will not detect the plane for some reason.

Planes can be detected, but it's better to use convex solid shapes.

Such as the question stands I'd say "check your normals". Or the ray points in the wrong direction.

And of course the plane needs a collision shape of some sorts. Just sayin' ...

I checked the normals, and looks like they are facing up.
The plane has a static body trimesh.

Here is a screen shot of the failed raycast.

I was able to make raycast work by putting the plane at center origin, 0,0,0. I moved the plane around with the raycast and it worked, until reaching outward past Vector(200.0,0.0,0.0).
I tested it at Vector 250.0 and the raycast then failed.
For some reason when the plane and raycast is past Vector(200.0,0.0,0.0) the raycast no longer will work.
Is this a limit the float? I am going to try and turn off the 8bit or 16bit float mode in the editor.

I could not find that setting. but it persistant in all directions. Move the plane too far and no collision with raycast. Move within certain range and perfect collision location.

I think the raycast is broken in godot.

Have you checked the collision body's extent ?

I looked at the collision body. It's a staticbody with trimesh and child of the spatial. The raycast is a child of the spatial also. I tested it out on another terrain and same failure. Moving outside origin makes raycast fail. I can't find out why. I might try setting the raycast global_transform.

The physics process was the problem. After moving the spatial that has the staticbody, I then have to wait for the physics_process to finish one cycle. Making the script wait 1.05 seconds fixed the problem. I might need to put the ray check into the _physics_process() to make it work even though I was using force_raycast_update() I will have to see if I can also disable the _physics_process() after it's spawned the game pieces.

How can I find out when all the _physics_processing is complete? I could try waiting 1.05 seconds. or counting 61 loops. But what if the computer is slowed down and running less than 60 fps.

Well if you are moving things around, then you'll need to wait until the next frame to check the collision (after the physics world state has been updated). But this should happen on the next tick of _physics_process(), which is 60Hz by default. What is the significance of 1.0 second in your game?