Hi Amer,
While completing the Workflow tasks, it is must that Assignee of that task should be User performing the action.
There are two ways you can do this,
For security reasons workflow only allows a user (session) to complete a task if it has been set as the user who is working on the task (aka assigned user). You can check if this user has been set (properly) by checking the association between System.WOrkflowUserTask and System.User. THis one:
When using the Workflow Commons task templates this is shown on the right side under "Assignees".