Collision compenetration using Move

Hi all,
I have a character that I move with CharacterController::Move, and it collides with object with collision capsules, but it eventually passes through those if I keep moving. I wasn’t expecting that to happen since Move is supposed to clamp the movement and slide against obstacles. Any ideas?
I tried pumping up the solver iterations but with no luck. I would like to avoid using continuos collision detection for obvious performance reasons. I can also clamp the movement myself but if that’s the solution, I don’t see any advantages in using Move at all.

Can you post the code you are using?

Sure. I want to keep the character, child of a null in the center of the sphere, walking on the surface, that’s why I force its position and rotation after the move. Probably that’s what’s causing issues?

if (moveDirection.sqrMagnitude>0.01f)
{
moving = true;
controller.Move(moveDirectionTime.deltaTimecurrentSpeed);
transform.position = transform.position.normalized;
transform.position = 25;
float angle = Vector3.Angle(transform.position, transform.up);
transform.RotateAround(Vector3.Cross(transform.position, transform.up), -angle
Time.deltaTime);
}

BTW if I don’t want to use Move, what component should I query to see if any collision happened with my character collider?
The only thing I saw so far is Physics::CheckSphere but I want to use my capsule collider instead.

Let me rephrase: if instead of using Move I manipulate the transform, the onCollisionEnter never gets called. How do I check for collisions then? Am I forced to use Move?