Sorry to wake this old thread, but we're seeing this problem in 9.3.0.
Very specific scenario:
Job with Task that sets a variable of the current job.
Runs fine when triggered by schedule.
Fails when triggered manually by a user without explicit permission to make the change that Task is making.
Still fails if the user has the permissions via a Domain Group and not explicitly for the user.
In our scenario in our DEV environment, the user has Administrator access via the Domain Group.
To fix the issue, we must uncheck "Use permissions from AD Group", directly grant the permissions to the user, and then recheck "Use ... AD".
This also seems to be a problem for set variables when calling another job but only if you use "Update Job Variables". I could see how you might think that is not a bug, but it is a change from past versions.