0x80070057Bad parameter passed to Web Server Extensions

By using the UpdateListItems() method of the web service Lists.asmx, an update of a list item kept on failing with the following error:

0x80070057Bad parameter passed to Web Server Extensions. Check the information you entered and try again.

The XML passed to the web service was built up as followed:

<Method ID='1' Cmd='Update'>
   <Field Name='ID'>1</Field>
   <Field Name='Title'>Update</Field>

There was no real reason why the web service should fail updating the item. The update worked fine on other lists. Turned out that after fiddling and testing with the list, the field “ID” was turned into editable mode and showed up as a column when the list settings were checked.

When the XML is passed to the web service, it successfully finds the fields “ID” and “Title”, but both are updatable. There’s no real identification of the item that should be updated.

The solution for the problem described here, is to turn the field “ID” back to read only. This is possible through PowerShell:

$web = Get-SPWeb http://sharepoint
$list = $web.Lists["ListName"]

$list.Fields["ID"].ReadOnly = $true

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s