Console is crashing because of special character
Hello,
one Service Request is crashing the Service Manager Console (2012 R2; Version 7.5.3079.0) when opening it, because it has a special character in it (hexadecimal value 0x0B). Opening this Service Request in the Cireson Portal ends with an infinite loading screen.
I know this is a special one but do you know how to avoid this in future?
Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: MIISDOYLP4JANZLHYCZWCU3FX1QY0RNK
Problem Signature 02: 7.0.5000.0
Problem Signature 03: 56bc2a63
Problem Signature 04: System.Xml
Problem Signature 05: 2.0.0.0
Problem Signature 06: 5a154e05
Problem Signature 07: 6f2
Problem Signature 08: 27
Problem Signature 09: System.Xml.XmlException
OS Version: 6.3.9600.2.0.0.272.7
Locale ID: 1031
Read our privacy statement online: http://go.microsoft.com/fwlink/?linkid=280262
If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt
Cireson Log "WebConsole.txt":
2019-10-23 11:41:55,417, ERROR [ 87]: Parsing User Inputs Failed - Associated Error: System.Xml.XmlException: '', hexadecimal value 0x0B, is an invalid character. Line 4, position 1. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 curPos, Char quoteChar, NodeData attr) at System.Xml.XmlTextReaderImpl.ParseAttributes() at System.Xml.XmlTextReaderImpl.ParseElement() at System.Xml.XmlTextReaderImpl.ParseElementContent() at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r) at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o) at System.Xml.Linq.XElement.ReadElementFrom(XmlReader r, LoadOptions o) at System.Xml.Linq.XElement.Load(XmlReader reader, LoadOptions options) at System.Xml.Linq.XElement.Parse(String text, LoadOptions options) at Cireson.ServiceManager.Services.Implementations.WorkItemService.GetUserInputObject(String userInput) 2019-10-23 11:41:57,322, ERROR [ 109]: Parsing User Inputs Failed: <UserInputs><UserInput Question="stringwithspecialcharter " Type="string" /></UserInputs>
Answers
Yeah, this is a mess. What version of the portal are you running? Cireson made a mistake when they added a new way to process ROs, and forgot to encode special characters in an XML string, before committing it to SCSM.
You can fix it manually with powershell, by getting the WI object, getting the UserInput property as a string, fix the encoding and then updating the same property with your fixed string.
What you need to fix is changing everything such as inside quotes to be encoded characters (e.g < > & etc). Then save it back to the SR and you should be able to open it.
Some like this will help you do it:
Edit: Okay, I just noticed that in errors on 0x0b, which is an invisible character, a vertical tab. I don't think that Cireson is stripping them at all, so you should raise a ticket with them to get a permanent fix. Until then, I guess you need to check which prompt contains this character and remove it until its fixed.
About @Konstantin_Slavin-Bo's explanation search Cireson portal release notes:
PR88702 Cannot open a Service Request generated from a Request Offering if the user input contains greater than or less than and the answer spans multiple lines.
Create IR for Cireson, maybe you found another evil character :)