Character Controller slides sideways when it hits objects are angles different from 90 degrees

Hi there
I’m new to Unity and new to UnityAnswers. I have a programming background so I’m doing all my scripting in C#.
I have an issue with my character controller. The Script for the movement I have basically makes my character move on a fixed path around a circumference with center (0,0,0).
That works fine, except when there is an obstacle in the way, where I want the character to stop when it collides with it.
Lets say my character hits a wall in the path, instead of stopping, it’s sliding sideways through the wall. It only stops at the wall if the angle between the character and the wall is 90. This has nothing to do with the slope. The character is NOT climbing the wall, is walking side ways, to the left or right depending on the angle.

What I’m doing to move my character is add some speed to the forward vector of the character and then rotate it according to the angle in the circumference, then do the same next update.

Could anybody help me figure out what am I missing?

That sounds to me like the normal collision response. If you walk up to a wall in an narrow angle you don’t want to stop the motion when you touch the wall. The speed gets projected along the wall. If you hit the wall at a right angle the projected speed will be “0” of course.

If you want to stop the motion you should stop moving the character forward when you collided with a wall.