Support - looks to have been breaking change in the way items with OTPs are pulled from PasswordState within the last few versions of PasswordState (Specific to RDM versions - I can confirm this affects 2023.3.33). We have no issue retrieving data from entries so long as that entry does NOT have an OTP. If there is an OTP associated you cannot retrieve the username, password or OTP of the object. The result in the UI is "Nothing to copy to clipboard" in the debug log we see the following trace:
Silent: Devolutions.RemoteDesktopManager.Business.XmlDeserializationException: There is an error in XML document (1, 885). ---> System.InvalidOperationException: There is an error in XML document (1, 885). ---> System.Xml.XmlException: The 'OtpUri' start tag on line 1 position 795 does not match the end tag of 'OTPUri'. Line 1, position 885.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.ThrowTagMismatch(NodeData startTag)
at System.Xml.XmlTextReaderImpl.ParseEndElement()
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.Xml.Serialization.XmlSerializationReader.ReadXmlNode(Boolean wrapped)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderPasswordArray.Read2_Password(Boolean isNullable, Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderPasswordArray.Read3_ArrayOfPassword()
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at Devolutions.RemoteDesktopManager.Managers.SerializationManager.LoadObjectFromString(String str, Type type, Boolean createAnInstanceIfNotExists, String nameSpace)
--- End of inner exception stack trace ---
at Devolutions.RemoteDesktopManager.Managers.SerializationManager.LoadObjectFromString(String str, Type type, Boolean createAnInstanceIfNotExists, String nameSpace)
at Devolutions.RemoteDesktopManager.Business.PasswordstateReader.GetObject(Type type, String path)
--
Eric Sakariasen
Connetic IT Support
Hello,
Thank you for reporting this issue.
We already have an internal ticket for this problem.
Once a fix will be available, we will post it here.
Thank you for your patience.
Best regards,
Érica Poirier
Hello,
This issue should be fixed starting with our next minor update, 2023.3.34.0.
Regards,
Hubert Mireault
Wonderful news, thank you for the quick turn around!!
--
Eric Sakariasen
Connetic IT Support
2023.3.34.0 looks to test out properly using the standard API on our pre-prod test server- I'm going to roll into production tonight but I'm hopeful its resolved.
--
Eric Sakariasen
Connetic IT Support
Thanks for the feedback, let us know if you encounter any other issue with Passwordstate!
Regards,
Hubert Mireault
Actually, it looks like you may have only fixed this using the standard API, the WinAPI is acting differently. The new issue is when we try and pull OTP we get the error dialog "The key is either empty or contains invalid characters".
The log shows the following error:
Silent: Devolutions.RemoteDesktopManager.Business.XmlDeserializationException: There is an error in XML document (1, 2). ---> System.InvalidOperationException: There is an error in XML document (1, 2). ---> System.InvalidOperationException: <OTP xmlns='http://schemas.datacontract.org/2004/07/PasswordstateAPI'> was not expected.
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOtp.Read3_Otp()
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at Devolutions.RemoteDesktopManager.Managers.SerializationManager.LoadObjectFromString(String str, Type type, Boolean createAnInstanceIfNotExists, String nameSpace)
--- End of inner exception stack trace ---
at Devolutions.RemoteDesktopManager.Managers.SerializationManager.LoadObjectFromString(String str, Type type, Boolean createAnInstanceIfNotExists, String nameSpace)
at Devolutions.RemoteDesktopManager.Business.PasswordstateReader.GetObject(Type type, String path)
Also its been a pretty frustrating day because the change you made for .34 also has the same affect on the old passworstate version for the winAPI, so half the company upgraded and couldn't retrieve OTP, I was assuming that once I had the ability to upgrade Passworstate to 9835 it would fix it but now I have to roll back both passworstate and have everyone roll back RDM to .33. I know its not your fault but I figured its important your team knows the entire story.
--
Eric Sakariasen
Connetic IT Support
Hello Eric,
Thanks for the feedback. I think I know what the issue is. We don't have an environment for the WinAPI setup on our end, so I assumed (wrongly) that the value returned by the regular API and the WinAPI would be the same, so the fix that I made broke it in turn for the WinAPI.
I'll work on a fix for this which should hopefully work for both types of APIs, hoping to release this quickly to get you unstuck. I'll post back here when we have something.
Regards,
Hubert Mireault
David, thank you for your reply. If you’d like us to test anything against our WinAPI setup we totally can.
--
Eric Sakariasen
Connetic IT Support
Hello Eric,
We've pushed out version 2023.3.35.0 which contains a fix for the WinAPI mode of Passwordstate. On our end, it still works as expected without WinAPI, but I would appreciate if you could let us know if it now works with WinAPI on your end.
Sorry about the inconvenience caused by the prior changes.
Regards,
Hubert Mireault
Hubert,
I can confirm that not only does .35 work with the current PasswordState Build but it works with the old build so we can do an RDM upgrade rollout then do the PasswordState upgrade. Thanks again for getting this out so quickly!
--
Eric Sakariasen
Connetic IT Support
Hi we use the Hub Business program version, in the last days the OTP code generated never works.
We wrote to support but nobody answered to us
Hello,
We are currently investigating this behavior.
We will update this thread once we get any valuable information to provide.
Thank you so much for being so patient!
Best regards,
Érica Poirier