Firing someone for an honest mistake is a great way to make all of your employees afraid to push changes out of concern that they'll be next (although to be fair this was a pretty big mistake).
Things like this are usually a systemic failure rather than being 100% attribute to a single person.