Friday, January 11, 2013

InfoPath 2010 "Failed to get SPGroupName from GroupID"

Recently got a warning message dialogue when trying to open an InfoPath form as normal user, which says "The security validation for this page is invalid".  If ignore it or log on as farm administrator, then it works well.


In the ULS logs I found the following message.
Failed to get SPGroupName from GroupID. Error Message: Group cannot be found.  Callstack:
at Microsoft.SharePoint.SPGroupCollection.GetByID(Int32 id)
at Microsoft.SharePoint.WebControls.PeopleEditor.set_SharePointGroupID(Int32 value).
After some googling, I found four possible solutions:
2. Turn off the security validation through Central Admin site

Unfortunately, none of them works.

From the ULS logs, we can see the problem is caused by "People Picker" control.The only thing I did with that control is a "Changed Event": when user selected a different person in that control, it triggers background code to populate the relevant fields.

Since there is no other option, I had to use a TextBox control and a "Verify" button to replace the "People Picker" control.

It works.

2 comments:

  1. I had a similar issue, but in my case, I had modified the form using InfoPath. It was working for a while, but then it started giving this error.

    These are the steps I used to fix this.
    1. Save a copy of your form on your hard drive.
    2. Go into the Form's List Settings page.
    3. Under General Settings, click on Form Settings. Select "Use the default SharePoint form" & "Delete the InfoPath Form from the server" & OK.
    4. Make sure you are now able to Edit and Save changes using the default SharePoint form.
    5. If all is ok, go back to the List tab and select to Customize Form.
    6. This will open the blank form with all of the fields. Select All of the content in the form, and delete it.
    7. Open the original form you had saved in the first step. Select all of the content, and copy the design into the new blank form.
    8. The fields in the form will not be bound to the field in the SharePoint list. You can either delete the field and pull in the correct field from the task pane or right click on the field and select to Change Binding...

    Hope this helps.

    ReplyDelete