4.7.1 Physics Joints Become Detached Despite Linear Projection

I have an actor that has two sphere components setup like tires.

I’ve configured the physics so that no collision occurs between the spheres and the box. I then create 2 joints using the following constraint instance:

Constraint.LinearXMotion = ELinearConstraintMotion::LCM_Locked;
Constraint.LinearYMotion = ELinearConstraintMotion::LCM_Locked;
Constraint.LinearZMotion = ELinearConstraintMotion::LCM_Locked;
Constraint.AngularSwing1Motion = EAngularConstraintMotion::ACM_Free;
Constraint.AngularSwing2Motion = EAngularConstraintMotion::ACM_Free;
Constraint.AngularTwistMotion = EAngularConstraintMotion::ACM_Free;
Constraint.bLinearBreakable = false;
Constraint.ProjectionLinearTolerance = 0.0f;
Constraint.bDisableCollision = true;
Constraint.bAngularBreakable = false;
Constraint.bEnableProjection = true;

The constraints work as desired, but occasionally, one or both sphere’s will become entirely detached. Isn’t this what projection is supposed to resolve? When I inspect the objects, they are sometimes over 1000.f units apart (linear projection is supposed to occur when objects are > 1.f unit).

You are an idiot and forgot to add a UPROPERTY() to one of your constraint instances which resulted in the constraint getting garbage collected.