Search This Blog

Tuesday, September 11, 2012

Column .. does not exist. It may have been deleted by another user

System.ArgumentException: Column 'ColumName' does not exist. It may have been deleted by another user.  /ListPath    at Microsoft.SharePoint.SPFieldCollection.GetFieldByInternalN

If we see the above error, don't panic there is a fix.

Cause: A workflow association was deleted from a list. Every time a workflow is associated and "run" on at least 1 item of the list - workflow creates a internal column with the first 8 characters of the workflow association.
Example: if your workflow association name was "MyWorkflow" the column name would possibly be "'MyWorkfl"

Hence above error would be"
Column: 'MyWorkfl' does not exist. It may have been......

Now if workflows were run using this association and later removed, clicking on workflows from context menu (ECB menu) will give the above error.

Fix:
Create a new workflow association with the same name i.e. this time give the exact same name i.e.
MyWorkfl. Use the out of the box approval workflow, check option allow to start manually. Start the workflow manually on one item on the list.
The workflow column MyWorkfl is recreated automatically.
Remove the option allow workflow to be manually started from this association but do not delete this association. Let it sit there. Go back to old items which had these workflows. The error should go away.
Tada...

-- Mohan

6 comments:

Anonymous said...

Genius!

Anonymous said...

Genius

Anonymous said...

Exactly followed your suggested steps. the only thing i missed was i had not started the workflow manually thats y i was facing problem. once i manually restarted the workflow my problem was resolved.

Anil Share Point Space said...

This is awesome

Anil Share Point Space said...

awesome

Anonymous said...

Hi Mohan,

I faced this same annoying issue in Production and your article saved the day. Thanks for creating this article.
Nice work, keep it up.

Syed Abbas