docs: def Exception(obj, eng, callbacks, exc_info):
          """Handle general exceptions in workflow, saving states."""
          exception_repr = ''.join(traceback.format_exception(*exc_info))
          msg = "Error:\n%s" % (exception_repr)
          eng.log.error(msg)
          if obj:
              # Sets an error message as a tuple (title, details)
              obj.extra_data['_error_msg'] = exception_repr
              obj.save(
                  status=obj.known_statuses.ERROR,
                  callback_pos=eng.state.callback_pos,
                  id_workflow=eng.uuid
              )
          eng.save(WorkflowStatus.ERROR)
          db.session.commit()
  
          # Call super which will reraise
          super(InvenioTransitionAction, InvenioTransitionAction).Exception(
              obj, eng, callbacks, exc_info
          )