collision between a sphere and a plane kinda working

I'm dropping a sphere on to a plane. When it hits the plane it stops for a brief moment then falls through the plane. The sphere is a rigidbody with a sphere collider. The plane has a mesh collider, and I've tried a box collider. The temporary collision seems to be independent of speed. I've tried, the dontgothroughthis script but I get this error:

Actor::updateMassFromShapes: Compute mesh inertia tensor failed for one of the actor's mesh shapes! Please change mesh geometry or supply a tensor manually!

I've never had this problem before, but I don't know what it is that I'm doing differently.

Thanks for any help.

To avoid that 'Inertia Tensor' error, put a thin box collider on the plane instead of a Mesh Collider. then try increasing the thickness of the box until the sphere stops going though.

For an explanation, see this answer.

If this doesn't help, you might need to give more information about how you're moving your objects. Is it just falling because of gravity? Are you adding forces or manipulating the velocity value directly?

Edit: responding to comment:

"I am moving my objects with transforms using a variable for gravity. I'm manipulating the velocity value directly I'm not adding forces."

That will be the source of your problems then. If you want the physics collisions to work properly, you need to use the physics engines in the way it's designed to be used. The handling of gravity is built-in to the engine, so you don't usually need to explicitly add a force for that.

There is specifically a warning on the manual page for rigidbody.velocity which states that setting the velocity directly can cause problems. In your case, it seems as though your code is simply forcing the object through the plane because you're manipulating the object in a way which bypasses the normal operation of the physics engine.

My bet is that if you change your code so that it uses forces, your problems will go away. Is there any particular reason that you are avoiding using forces?

Is the plane moving? Is the position of the ball being altered directly? Easiest option would be to decrease the fixed time step so that there are more physics calculations per frame. Also make sure to do all physics related movement in FixedUpdate.

I use this a lot to "set" my velocity (if necessary).

rigidbody.AddForce( desiredVelocity - rigidbody.velocity, ForceMode.VelocityChange); 

rather than just

rigidbody.velocity = desiredVelocity;

This basically tells the physics system that you want to get your object up to that desired speed right now, regardless of mass etc. but this approach will still take into account any collisions which may occur, whereas setting it straight, unless I'm mistaken, will jump it through objects... maybe? I could be wrong here.

It also helps to change your rigidbody's settings to use some combination of continuous checking and interpolation, especially if this is a player controlled object (Where you want the most "Detailed" physics). Play around, see what works.