Refactoring based on feedback from Norman and working within the capability of BAO. Basically the WF engine can't recover from compensation, so where we are reporting an error status on the response, it causes an exception in the WF, which stops everything. Instead we need to return a response that has xml elements stays, message and data.