I'm a frontend developer who has been with my company for nearly three years and had consistently strong evaluations. I was working toward a senior-level promotion, but recently introduced a bug during a six-to-eight-week migration from one frontend library to another. I was the only developer available for the project.
The bug caused some customer data to be overwritten. We recovered most of it, but some customer changes made afterward made it impossible to determine exactly what had been lost. I tested the work myself, but missed an issue that should have been relatively easy to catch. The team also reviewed it under the assumption that only light QA was needed, which appears to have been a communication failure.
The problem should have been caught by unit tests, but our tests relied too heavily on mocks and did not cover the relevant behavior. The bug involved optional fields being sent as empty values instead of being omitted, which caused the backend to overwrite existing data.
We're now conducting a post-incident review with senior leadership. My project manager has lost confidence in my work, and I'm struggling with my own confidence as well. I've started improving our frontend test setup with shared stubs and fixtures, and I'm working to introduce Playwright regression tests. What should I realistically expect, and how should I handle this?
4 Answers
Your manager losing confidence may be temporary, or it may indicate that the organization is looking for a scapegoat. Pay attention to how the review is handled. A healthy team will acknowledge your mistake while also examining the review process, test coverage, QA assumptions, deployment controls, and recovery capabilities. An unhealthy team will treat one incident as proof that you are permanently unreliable.
Keep communicating calmly, follow through on the testing work, and document the safeguards you propose. If the company continues treating you as the sole cause despite the broader gaps, it would be reasonable to consider whether there is better growth elsewhere.
What happens next depends on your company, but a post-incident review should focus on how the failure became possible rather than simply finding someone to blame. Be ready to explain what happened clearly, what assumptions were made about QA, why the tests missed it, and what safeguards will prevent a repeat.
For future changes that can mutate production data, push for end-to-end coverage, realistic fixtures, staged rollouts, canary releases, backups, audit logs, and an easy rollback path. The important lesson is not that you must never make a mistake; it’s that a normal mistake should not be able to cause unrecoverable damage.
Don’t interpret this incident as proof that you are not capable of becoming senior. Senior engineers are not people who never make mistakes; they are people who recognize risk, investigate failures honestly, and improve the system so the same class of failure is less likely. You may lose the promotion timeline for a while, but demonstrating ownership and turning the incident into durable improvements can ultimately be more valuable than having an uneventful project.
This sounds like a team and process failure, not something that should be pinned entirely on one developer. You were given a large, high-risk migration, worked on it alone for weeks, and the change received only light QA. Code review, integration testing, release safeguards, backups, and monitoring should all help catch or limit this kind of issue.
Take responsibility for your part without accepting responsibility for the entire system. The testing improvements you’re already pushing are exactly the constructive response leadership should want to see. One serious incident does not erase years of good work, and most developers eventually ship a bug that makes them feel awful.

The frontend was sending empty values for fields that should have been omitted when the user had not selected them. The backend treated those empty values as updates, so existing data was overwritten. I’m documenting that distinction and adding tests around it now.