GetActorRotation() yaw spread into roll


I have this weird issue in c++ where I get an FRotator via GetActorRotation() and the value of the Yaw is sometimes spread between the Yaw and the Roll. Regardless of that, in-game, the rotation of the actor is fine and has no Roll.

FRotator rot = impact.GetComponent()->GetComponentRotation(); // If I print the values I get something like 0, 90, 0
ADecal* decal = World->SpawnActor(ADecal::StaticClass(), FTransform(rot, impact.Location), ActorSpawnParams);
FRotator rot2 = decal->GetActorRotation(); // If I print the values of rot2 I SOMETIMES get 0, 26.5, 63.5 but sometimes it's 0, 90, 0...

Clearly, 26.5+63.5 = 90, so why is the Yaw spread into the Roll?
Regardless of the rotation I print out, the actual rotation in-game is fine because the decal is facing the right way with the right rotation. The thing is that I want to get that rotation in code and make decisions based on it and I can’t because of what seems like a bug… My ADecal actor doesn’t have a physics body, so I don’t see how it could rotate by itself after spawning.

Went from 4.14 to 4.17 and problem is still present.