Okay, let me rephrase:
1. Seems weird that you're doing int manipulations like this for status.
2. Why does status get updated every time change failed gets called? When does this get called?
3. If you're just trying to revert, why not revert it in the actual request?