When your Workflow is trying to process a document (Approve, Reject, etc.), we could get all kinds of errors (Enqueue, BAPI related, etc.), that would (depending on your Workflow design) end up in SWPR (more in: https://blogs.sap.com/2013/08/13/restart-workflow-after-error/).
BUT, before your workflow ends up with an ERROR status, you could schedule him to retry, without any additional coding.
In SWDD, in your Action task, go to Miscellaneous tab, Settings for background work items:
Here you can specify repeat and time, example:
Creating a TRIP document:
Decision work item is READY:
After approval, i’m still editing the document so it cannot be approved (Enqueue error):
Entry in SM58:
But the status is not yet ERROR, because it’s going to retry the execution. After a few seconds i leave the document and the task get’s processed with success.
So now, your Workflows can have some “extra tries” before the ERROR status.
Don’t forget your SWU3 configuration: