A loaf needs enough fermentation to contain gas, but it also needs enough remaining strength to hold that gas as it expands.
This is why both underfermented and overfermented dough can produce disappointing bread, although the results usually look different.
Underfermented dough feels dense and tight. It may rise suddenly in one area, burst along the side, or tear at the base. Inside, large tunnels often appear beside dense, gummy sections. The loaf may show some dramatic expansion, but it is uncontrolled rather than a sign of healthy fermentation.
Overfermented dough is usually very soft, sticky, and fragile. It may spread after leaving the proofing basket and lose more volume during scoring. The dough contains gas, but its gluten structure no longer has enough strength to support further expansion.
The best oven spring comes from dough that is well fermented but not exhausted. At the end of bulk fermentation, it should look aerated, feel elastic, and hold its shape without becoming weak or runny.
A sluggish starter can also limit oven spring because the dough never develops enough gas. But if the dough rose well during bulk fermentation, the starter probably did its job. In that case, look more closely at proofing, shaping, scoring, and baking conditions.