Originally Posted by
Road Fan
Before you think about more parts, I'd go back through the cable and derailleur settings and make sure the front derailleur travel is limited the right way. Usually overshifting off the chainring is due to the cage moving too far. This problem can be present on the front and rear derailleurs, and on both the inner and outer limits.
That would explain going over the big ring, but not the inability to shift onto the small ring. The limit for the small ring is set to go as much as possible and it still doesn't shift into the small ring all the time. The limit screw is set so the FD can move as much as possible when it's shifting down to the small ring.