Adding, removing or editing permissions of a user in SSRS 2008 is throwing error “”Response is not well-formed XML

ssrsssrs-2008

I am totally stumped by a really stubborn problem: When I try to take any action (add, remove, edit) in the Security tab of a report's Properties page on SSRS 2008 UI I get a generic error. All it says is this: Response is not well-formed XML.

Digging in the LogFiles folder at the SSRS installation root, I see this:

role assignment is not valid. The role assignment is either empty,
specifies a user or group name that is already used in an existing
role assignment for the current item, or specifies duplicate roles for
the same user or group. ui!ReportManager_0-1!32c!07/23/2011-15:03:33::
e ERROR: Response is not well-formed XML.
ui!ReportManager_0-1!32c!07/23/2011-15:03:33:: e ERROR: HTTP status
code –> 500
——-Details——– System.InvalidOperationException: Response is
not well-formed XML. —> System.Xml.XmlException: Unexpected end of
file has occurred. The following elements are not closed: Message,
detail, soap:Fault, soap:Body, soap:Envelope. Line 3, position 5470.

at System.Xml.XmlTextReaderImpl.Throw(Exception e)

at System.Xml.XmlTextReaderImpl.ThrowUnclosedElements()

at System.Xml.XmlTextReaderImpl.ParseElementContent()

at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)

at System.Xml.XmlLoader.ReadCurrentNode(XmlDocument doc, XmlReader
reader)

at System.Xml.XmlDocument.ReadNode(XmlReader reader)

at
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadSoapException(XmlReader
reader)

at
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage
message, WebResponse response, Stream responseStream, Boolean
asyncCall)

at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters)

— End of inner exception stack trace —

at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters)

at
Microsoft.SqlServer.ReportingServices2005.ReportingService2005.SetPolicies(String
Item, Policy[] Policies)

at
Microsoft.SqlServer.ReportingServices2005.RSConnection.SetPolicies(String
Item, Policy[] Policies)

at
Microsoft.ReportingServices.UI.ImageTextButton.RaisePostBackEvent(String
eventArgument)

at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument)

at System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
library!ReportServer_0-2!a14!07/23/2011-15:03:33:: Call to
GetSystemPropertiesAction().
ui!ReportManager_0-1!32c!07/23/2011-15:03:33:: e ERROR: Exception in
ShowErrorPage: System.Threading.ThreadAbortException: Thread was being
aborted. at System.Threading.Thread.AbortInternal() at
System.Threading.Thread.Abort(Object stateInfo) at
System.Web.HttpResponse.End() at
Microsoft.ReportingServices.UI.ReportingPage.ShowErrorPage(String
errMsg) at at System.Threading.Thread.AbortInternal() at
System.Threading.Thread.Abort(Object stateInfo) at
System.Web.HttpResponse.End() at
Microsoft.ReportingServices.UI.ReportingPage.ShowErrorPage(String
errMsg)

The databases (ReportServer and ReportServerTempDB) came out clean when I ran DBCC CHECKDB.

This error is preventing me to do any of the following actions:
1. Use "Edit Item Security" for a report or folder
2. Delete a User name from the Home folder Security page
3. Add a new user using "New Role Assignment"

The really weird thing is that some of these 3 actions work in some report folders. There is nothing I can see common between the ones that work and those that don't.

Any ideas??

Best Answer

THIS ISSUE HAS BEEN RESOLVED!

Root cause: There was a user who was somehow added 3 times to four different roles under Home folder. Any sub folder using the same permissions as Home (inheritance) suffer the same consequences. Why should SSRS allow this in the first place or not flag it clearly in the error log is beyond me!

Resolution: Removed the duplicates for the user (2 of the 3 entries) on SSRS UI.

Lessons learned:
1. Read each error a few times BUT do not get carried away with the most flagrant error
2. Try and separate symptoms from causes (in this case the existence of duplicate IDs was the cause but in the error logs you will see whole bunch of language like "Unexpected end of file has occurred" that under the stressful circumstances could easily mislead and send you down a rabbit hole!
3. Take any suggestion you get with a pinch of salt but vet it properly