Why does my springarm camera rotation pop/ snap?

I have an extended character class. The component setup is Capsule, SpringArm (Used as padding because I can turn inherit pitch yaw and roll to false), SceneComponent (this is rotated to turn camera/ cams springarm). Cams Springarm (which inherits rotations from scenecomponent), and finally the camera.

The purpose of this setup is to have the capsule and scene component rotate independently of one another. The capsule points in the direction vector the WASD keys point it, while the Scene component only rotates when the camera swivels.

The problem I’m experiencing is the camera pops every so often. To test it I just spam WASD keys. Eventually the camera will flip to the other side of the character. Even though the WASD keys should not be effecting the SceneComponent since the Springarm parent is set to not inherit rotation (and not to use Control Rotation).

This seems like a bug to me.

if (Capsule)
{
Capsule->InitCapsuleSize(UISC::startingCapsuleRadius, UISC::startingCapsuleHalfHeight);
Capsule->SetCollisionProfileName(TEXT(“Pawn”));
Capsule->SetSimulatePhysics(false);
Capsule->SetEnableGravity(true);
RootComponent = Capsule;
Capsule->GetBodyInstance()->COMNudge = FVector(0.0f, 0.0f, -96.0f);
Capsule->SetLinearDamping(0.15f);
Capsule->SetAngularDamping(100.0f);
Capsule->SetNotifyRigidBodyCollision(true);
}
Padding = CreateDefaultSubobject(TEXT(“Padding”));
if (Padding)
{
Padding->TargetArmLength = 0.f;
Padding->bDoCollisionTest = false;
Padding->bUsePawnControlRotation = false;
Padding->bInheritPitch = false;
Padding->bInheritYaw = false;
Padding->bInheritRoll = false;
Padding->bUseAttachParentBound = true;
Padding->SetupAttachment(GetCapsuleComponent());
}
Waist = CreateDefaultSubobject(TEXT(“Movement Grid”));
if (Waist)
{
Waist->bUseAttachParentBound = true;
Waist->SetupAttachment(Padding);
}

Why is the waist receiving any rotation from parents? The parent node “Padding” is set to not inherit Pitch, Yaw, and Roll.

Turning Padding->bAbsoluteRotation = true; solved this problem for me.