Character Controller gets stuck at end of obstacle

I’ve only just today realized that CharacterController is a very general-purpose thing — somehow I’d been laboring under the belief that it was for controlling articulated humanoid characters. Thanks to zine92 (in this thread) for pointing this out.

So I tried it out in a quick test project, using the sample code given in the CharacterController script reference. It seems to work great in most ways; when I drive my tank forward and hit an obstacle (a big box), it refrains from penetrating the box, and just slides along it as I would want. But when it gets to the end of the obstacle, it should slide right off and continue past the obstacle. Instead, it gets stuck at that point, stops sliding, and doesn’t move at all. I have to back up, turn away from the obstacle, and “manually” drive around it.

Has anyone else seen this behavior in CharacterController? Is there anything that can be done about it?

I have never seen that happen, but I have never tried driving a tank into a big box.

Have you experimented with skin width of the controller to see if it makes a difference?

Don’t get stuck
The Skin Width is one of the most critical properties to get right when tuning your Character Controller. If your character gets stuck it is most likely because your Skin Width is too small. The Skin Width will let objects slightly penetrate the Controller but it removes jitter and prevents it from getting stuck.
It’s good practice to keep your Skin Width at least greater than 0.01 and more than 10% of the Radius.
(from Unity - Manual: Character Controller component reference)