I have a basic character controller on the main character of my game. For some reason all collisions that happen on top of the character are happening way before there is an actual collision. For example in the picture below you can clearly see that the capsule is not colliding with the box colliders above the character. However OnControllerColliderHit is being triggered and if (controller.collisionFlags & CollisionFlags.Above) != 0 is reading true which means there is a collision above the character.
To make things stranger if I set isTrigger to true on the colliders above the character the OnTriggerEnter() method does not have the same problem as a standard collider.
Also as you can see the character is on the ground so obviously the collision detection below the character is working
Does anyone know of a way to fix this problem? Is this a bug in Unity?