GetController() returns nullptr while GetPlayerController() works properly

So the controller I get from GetWorld()->GetFirstPlayerController() and GetController() is not the same object? Does that mean my character is being possessed by 2 controllers at the same time? If so, what is the difference between the login Controller and the Controller I’m receiving from GetController()?