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> </Method>
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