Console is crashing because of special character

Robin_FaklerRobin_Fakler Customer IT Monkey ✭
edited October 24 in Service Manager

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

  • Konstantin_Slavin-BoKonstantin_Slavin-Bo Customer Ninja IT Monkey ✭✭✭✭
    edited October 24

    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 &lt; &gt; &amp; etc). Then save it back to the SR and you should be able to open it.

    Some like this will help you do it:

    #SMLets is needed for this script: https://github.com/SMLets/SMLets/releases
    ipmo smlets
    
    $srId = "SRxxxx" # Enter SR id
    $sr = Get-SCSMObject -Class (Get-SCSMClass -Name system.workitem.servicerequest$) -Filter "ID -eq $srId"
    
    # This will output the corrupt XML
    # Copy and paste this in a text editor, and fix mistakes
    $sr.UserInput
    
    return # Stops script here, continue manually from here on
    # Paste the whole XML again, now with proper encoding
    $fixedUserInput = @"
    
    "@
    
    Set-SCSMObject -SMObject $sr -Property UserInput -Value $fixedUserInput
    


    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.

Sign In or Register to comment.