I have gone through the mentioned SR , When you submit a work object it will be moved from that asssignment shape to another Assignment shape to whom ever it is routed to. As per your design once the WO is rejected it should routed back to the original operaotor. As your operaotor has chnaged the last name in between which interns change the Operator ID. The newly created operator ID was not updated for routing in your flow. In this case as your old operator ID was removed from the system an exception will be thrown and the work object wont be commited to the DB.
I am not sure if we can recover the WO because it will become a stale object. You can look into Data-Admin-DB-Table instance for your work class and see if the reletaed data has been saved into the DB. If you know the exact tables you can manually update the changes in DB. But this is not the recommended way.
Your analysis is correct in that old operator ID and new operator ID are different and the WO was not rerouted correctly.
No Exception was thrown and the WO is sending emails (to the old email address) as SLAs on the WO are breached.
I am not sure what the definition of a 'stale' object, but my requirement is to recover the same WO.
Instead of looking at the DB tables and trying to figure out where the related data is stored, would it be possible to open the clipboard page of the WO and update the clipboard details with the new properties/information (new last name, new email, new LoginID etc.) and save the clipboard page? Would the WO be saved with the new information from the front end (clipboard update) vs making a change from the DB (as I do not know the where and what stage the related information is stored) ?
Has any one tried this approach of saving a WO in PROD via clipboard update and what are the consequences of updating a WO that has not been routed correctly?
Could you create the "old" operator so that they system has a target to to assign the case to and then from there use the OOTB reassign tools to send it to the new operator?
You could definitely change values on the clipboard. I'd want to test in a lower environment to make sure you get them all (I have no idea what they are off the top of my head). This is far riskier, since you'll want to look at the work object, the assignment object, any queue items that may be created, etc. to make sure they are all consistent, otherwise you run the risk of trading in one type of broken work object for another.