yes, that's correct. currently, salesforce does not support the recall option for all users - only to admins and to the original submitter. this can be selected in the approval process setup.
Two ways to achieve this is by
Custom Email Service
API Callout to Salesforce to Recall.
In both cases, you need to run in admin context user.
In your code,
Although, this is a really late answer, I hope it would help someone looking for a solution to this problem. I came across this work-around in the same week this question was originally posted, but missed out to post it here. [Thanks to my co-worker Frank Dipoma who suggested this approach to me (not sure if he is on this forum)]
Per the standard approval ...
I had the same issue and was not able to get it to work as intended. There is effectively no debug information since the flows are not invoked by the approval process. I was able to get my flow to fire by performing the DML directly on the record.
My eventual workaround:
Change the type of flow so that it can be invoked by a process
Create process with ...