asking for a friend
As part of a small project I wrote some code some months ago.
The code passed my tests, code review, UAT by business analysts and everything was fine. When the time came for me to request that it be loaded to production I had a gut feeling something wasn't right. I double checked the code and found a very serious logical error.
The problem was that between the time it was loaded to production and the time it went live (can be anywhere from a couple of days to a couple of weeks) the "fix" was going to deactivate another fix by someone else that was crucial to the business.
Embarresingly I reported it to management that I made a huge mistake.
The rest of the team has now also become aware since we're having meetings, sitting together assessing impact and discussing it openly. Senior management are also aware and want complete reports of what happened.
My manager is trying to help me remain calm telling me he is glad I spotted this before it went to production since we now have options. All options involve bringing our local office into the spotlight before the global corporation and having to explain how such a simple mistake was made in the first place. (This "simple mistake" isn't so simple or obvious but once it is pointed out it becomes very obvious, but it is difficult to pick up).
I've never made such a mistake in the workplace before and am extremely embarrassed about it and feel my "brand" has been tarnished. I am not sure if I should be apologetic, or just focus on finding a solution or just hand in my resignation now and move on. I feel terrible that I have wasted so much of the companies time on this already.
tl;dr What is the best way to navigate this situation when I am personally responsible for a huge mistake in the workplace that is pure human error?
EDIT:
As it turns out the whole thing was a false alarm - I messed up the boolean logic table (made a typo and didnt double check) when studying the logic which in turn gave the false result that the massive error would have happened. Since this code was written (by me of all people) around 6+ months ago I must have completely forgotten what I was trying to do but as it turns out it was correct the first time. I think this is worse, I panicked and wasted half a day of my time and the managers time for nothing.