Start here. This is the direct spoken answer to practice first.
Why this question matters
Bad releases are where release theory becomes real. This drill matters because the production behavior is shaped by platform configuration, code boundaries, and the operational path the team will use during a real incident.
I would first reduce user impact and gather enough evidence to avoid making the problem worse. Swap-back is attractive when the release is mostly code and the old version is still compatible with the database and external side effects. Roll-forward is safer when a migration, message format, or external integration already changed in a way the old version cannot handle. Feature flags and targeted disablement can buy time while deciding.