Attach Spectator to SpringArmComponent

Right now I have my game set up so that when you die you become a spectator. And that is all working perfectly. No I want to take things a step further and attach the spectators to other player character’s spring arm component. That way the spectator will only be able to see what the player is seeing (almost as if he is looking at that users physical screen). This is how I am trying to accomplish it:

void AArenaSpectator::OnNextCamera()
{
	GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, FString::Printf(TEXT("Next")));
	AArenaGameState* const GameState = GetWorld() != NULL ? GetWorld()->GetGameState<AArenaGameState>() : NULL;
	if (ensure(GameState != nullptr))
	{
		index++;
		if (index >= GameState->PlayerArray.Num())
		{
			index = 0;
		}
		AArenaPlayerState* const TestPlayerState = GameState->PlayerArray[index] != NULL ? Cast<AArenaPlayerState>(GameState->PlayerArray[index]) : NULL;
		if (TestPlayerState != NULL)
		{
			AArenaCharacter* Pawn = Cast<AArenaCharacter>(TestPlayerState->MyPawn);
			this->RootComponent->AttachTo(Pawn->CameraBoom, USpringArmComponent::SocketName);
		}
	}
}

And here is the results I am getting:

It’s actually working perfectly except the spectator is like attached a mile away. Which is odd because the camera boon is only 250.0 cm long. Why is the spectators being attached so far away?

Below is the code I used to get it working as I wanted:

	AArenaGameState* const GameState = GetWorld() != NULL ? GetWorld()->GetGameState<AArenaGameState>() : NULL;
	if (ensure(GameState != nullptr))
	{
		index = index >= (GameState->PlayerArray.Num() - 1) ? 0 : (index + 1);

		AArenaPlayerState* FollowPlayerState = GameState->PlayerArray[index] != NULL ? Cast<AArenaPlayerState>(GameState->PlayerArray[index]) : NULL;
		AArenaPlayerState* const MyPlayerState = Cast<AArenaPlayerState>(this->Controller->PlayerState);

		while (FollowPlayerState->GetTeamNum() != MyPlayerState->GetTeamNum())
		{
			index = index >= (GameState->PlayerArray.Num() - 1) ? 0 : (index + 1);
			FollowPlayerState = GameState->PlayerArray[index] != NULL ? Cast<AArenaPlayerState>(GameState->PlayerArray[index]) : NULL;
		}

		FollowPawn = Cast<AArenaCharacter>(FollowPlayerState->MyPawn);

		if (FollowPlayerState != NULL && FollowPawn->GetController())
		{
			this->Controller = FollowPawn->GetController();
			this->RootComponent->AttachTo(FollowPawn->CameraBoom, USpringArmComponent::SocketName, EAttachLocation::SnapToTarget, true);
		}
	}