Keep getting .poll() Context is Incorrect Error even though I set the correct context I keep getting "Context is incorrect" errors even though I use an override.

Here is the .blend: http://pasteall.org/blend/index.php?id=50312

It has one of my models I am coding some Animation Managing Tools for.
I am trying to unlink multiple actions from an object.
For this I use a custom class object to refer to the actions. 

I made a function that changes the active action for the object and then calls the function for pressing the X next to its name in the Dopesheet Editor "bpy.ops.action.unlink()".

For this I set the Execution Context to the Dopesheet Editor.

Now the strange thing is, that the first action gets unlinked but at the second it raises the error.

Debug Prints show that the area is set to the Dopesheet Editor.
Set action to None

Would simply use

if ob.animation_data:
    ob.animation_data.action = None


rather than 

bpy.ops.action.unlink()


The former only needs reference to an object.

If you want to remove all animation from an object, actions, drivers and NLA then use

ob.animation_data_clear()


The error from question is caused by clearing the action on the object on first iteration and henceforth having no action to remove, it doesn't poll.