It never got sour enough
Updated
On this page7
Too cold, and it stalls
Acetic fermentation is slow and it is temperature sensitive. A cool room does not stop it so much as stretch it out past the point where anybody is still paying attention, which is how a batch gets bottled early.
Not enough air
The bacteria need oxygen, which is the opposite of nearly everything else in this library. A vessel sealed tight, or one with too little surface relative to its volume, starves the process. A cloth cover over a wide vessel is doing real work.
Too much alcohol to start with
Above a certain strength the bacteria cannot operate, so a starting liquid that was too strong simply sits there. That one is set at the beginning and is not fixable later without dilution, which is a decision to make deliberately rather than as a rescue.
Measure, do not taste
A vinegar at three percent is unmistakably vinegar on the tongue. The only way to know it reached four is to measure the acid strength, which is why a vinegar of unknown strength must never be used to acidify anything else. That is the single most consequential sentence on this page.
What to do with a stalled batch
Warm it, give it more air, give it time, and measure again. If it will not finish, it is a cooking ingredient for your own kitchen rather than a product, and specifically it is not an acidifier.
Patience is the usual answer
Most stalled batches are not stuck, they are slow, and the common error is bottling on a schedule rather than on a measurement. A vinegar is ready when it measures ready, and a production calendar that assumes otherwise will produce under-strength batches every time the room runs cool.