Target Arm length doesn't work

I had a similar issue where the 3PP cam would appear at the Actor origin. Turns out in my C++ I forgot to attach the 3PP cam to the SpringArmComponent socket:

// Create the arm on which the 3PP camera will sit
	ThirdPersonCameraArmComponent = CreateDefaultSubobject<USpringArmComponent>(TEXT("ThirdPersonCameraArm"));
	ThirdPersonCameraArmComponent->SetupAttachment(GetCapsuleComponent());
	ThirdPersonCameraArmComponent->SetRelativeLocation(FVector(0.f, 0.f, BaseEyeHeight));
	ThirdPersonCameraArmComponent->SetRelativeRotation(FRotator(-20.f, 0.f, 0.f));
	ThirdPersonCameraArmComponent->bUsePawnControlRotation = false;
	ThirdPersonCameraArmComponent->TargetArmLength = CamArmLengthMax;

	// Create a CameraComponent	for third person perspective
	ThirdPersonCameraComponent = CreateDefaultSubobject<UCameraComponent>(TEXT("ThirdPersonCamera"));
	ThirdPersonCameraComponent->SetupAttachment(ThirdPersonCameraArmComponent, USpringArmComponent::SocketName); // I forgot the SocketName here
	ThirdPersonCameraComponent->SetActive(false);

which is necessary to get the arm length offset to be respected. After recompiling I found the issue wasn’t fixed, but I was able to fix it by deleting the instance of the relevant Actor from my map and recreating it; something something CDO I guess, since the code above is in the Actor’s constructor.