SharePoint workflows are a great way to automate processes and allow you to do things to lists that you may not otherwise be able to do based on the permissions of the user who initiated the workflow. There is a wonderful feature in SharePoint workflows called App permissions that allow you to do tasks at an elevated permission level. That, however is not why I’m writing this article. This article focuses on an interesting “gotcha” when attempting to run a workflow from a user who does not have “edit” privleges on a SharePoint list. I had a list with unique permissions that allowed users to create a record but not able to modify it. The workflow would run and just hang. What was the underlying issue you might ask? Well, it turns out there’s a setting you need to turn off. You need to uncheck the box “Automatically update the workflow status to the current stage name.”
The reason ends up being pretty obvious when you think about it. If the user who initiated the workflow can’t update the list how can they update the status on the record?! If you need to keep track of the stage name for logging purposes then just create a custom text field on the list and update inside the App Step (remember, you need elevated permissions!). Hopefully this blog post will save you some headaches when your workflow decides to not run.