When you skip testing, or just have horrible tools for testing, things start catching up with you in short order.
About 1 year ago, I finally was able to pry enough information about how a bit of automotive electronics scripting was made, turns out its simple stack scripts, lets you read in data from the CANBUS, process it and react accordingly, including writing back to the CAN
These scripts where mostly copy-pasta only 300-700 lines, the grey beard that retired 5 years ago wrote it, so we don't question it kind of crap.
Well I went and wrote an emulator for there scripting language, just to check things out, as we kept seeing weird behavior in the data it was logging, and little hard to replicate glitches.
Turns out the grey beard code was pushing an error value to stack any time it could not handle a packet, but never removed it. so the glitches where the stack hitting something it shouldn't, causing a very rapid reboot, however there debugger that they test scripts with, would remove that value, so they would never see the issue in testing, combined with only feeding "good" data to the scripts so they rarely handled packets that would trigger this behavior.
I went and re-wrote the problematic scripts, explained what was going wrong, and how to fix it, even shared the emulator with the company, and don't think I have had a door slammed harder in my face before, with all future updates with the same bugs, that I would then patch.... company culture and ego plays a big part in these things.