All 3 characters above are using the same skeletal mesh and animation blueprint. The only difference is they are at different points in the polymorphism chain, with the character on the right being a player character.
The hierarchy for these classes go as follows:
ACharacter
-ACharacterBase
--BP_Character_Left
--ARandomCharacter
-–BP_Character_Middle
--APlayerCharacter
-–BP_Character_Right
ACharacterBase by itself does not really do much. It has functions that the child classes call, but ACharacterBase itself only sets this in the constructor: PrimaryActorTick.bCanEverTick = true.
ARandomCharacter adds no code, it just inherits from ACharacterBase. Having a constructor that just does PrimaryActorTick.bCanEverTick = true and a BeginPlay function override that just calls Super::BeginPlay does not make a difference.
APlayerCharacter adds a ton of code, as it is the main player character. The effects are more pronounced on this character.
On the player character, it looks like to me that the IK just gets ignored for a frame when the LOD changes. It seems like the character tick happens before the animation blueprint tick, so I do not think that it is a timing issue. On the player character, it pretty much looks like the IK, which snaps the otherwise hovering feet to the ground, is just turned off, but the other animations are not impeded.
Here is the animation blueprint I am using for testing, with the Control Rig node being the BasicFootIK that came with this unreal project preset:
It might be worth noting that I upgraded this project from unreal 5.3 to 5.6. I used the third person character template to generate the project in 5.3.
Turning off LODs for the characters or setting the skeletal mesh to only have 1 LOD removes this problem, but I would rather have the option to be able to do use LODs in the future without having that obvious pop.