It did not set
Updated
On this page7
The incubation temperature was wrong
The most common cause by a distance. Cultures have an optimum and holding even a few degrees below it slows them enough to change the outcome. "Somewhere warm" is not a specification, and a thermometer in the incubator for one batch usually answers this immediately.
The culture was tired or dead
Cultures lose activity in storage, and a propagated one drifts and weakens. If one batch failed after several good ones with nothing else changed, this is the likely story. It is also why a propagated culture needs a renewal schedule rather than being run until it fails.
The milk could not make a firm gel
Set depends on protein and solids content as well as on acid. Milk low in solids, or milk from a different source or season, can ferment correctly and still give a softer product. Checking the pH distinguishes this from the first two: a correct pH with a weak set is a composition story.
Which is why you measure rather than look
A soft set and a failed fermentation look alike in the pot and are completely different problems. The pH tells you which one happened and the milk record tells you why, and without both you are guessing.
A batch at the right pH is still a product
It may not be the product you meant to make, and if it reached 4.6 it is safe and it is sellable as something else, such as a drinkable style. A batch that did not reach the pH is a different matter and should not be sold as yogurt.
Check the thermometer before anything else
An incubator reading three degrees high explains every one of these symptoms and costs nothing to rule out. Verifying the thermometer against a known reference once a season is the kind of boring check that prevents a month of chasing the culture.