I am having re-occurring issues with a workflow failing to see the item or fields they are running against if I use a Set Items Permissions action.
In the set item permissions action - I set Initiator to Full Control and some other groups to Contribute etc., I tick to remove all existing permissions.
I then have a commit.
The workflow will then fail to run an update field action stating there is a mismatch between the data types or the item does not exist.
If I disable that it gets to an Approval action but states the approver is blank (approver is stored in field on the item).
I have also tried putting a pause after the permissions action which didn't help.
If I submit the item as a Site Collection Admin everything works fine, if I remove the set item permissions actions everything works.
It seems once Nintex sets permissions on the item and removes the existing permissions, it can't use the permissions it set to see the item anymore.
I want to be able to restrict the items while the approvals are happening.
Firstly I would suggest that you put a "Commit Pending Changes" control after the Item Permission action.
It may also be more appropriate to not remove all existing permissions, but to remove selected permissions first, followed by a Commit and then another action to add the required permissions, followed by another Commit.
It sounds like you are removing the permissions that allow the workflow to run under the correct context.
There is also an option on most workflow actions to run a section of workflow as the workflow owner. This is located on the Common tab of the action - see below:
This will only appear as an option if the action you are working with is on a single "stream" of a workflow. That is it will not be available for part of a multi-branch action. Once this is enabled, it is visable on the workflow as a shield on the control icon - see below: