I am a developer for a program which connects with Studio through the API, and have had some troubles with the 2022 version.
When adding TM server credentials to a project, I receive the following error:
Error while adding TM server credentials to project, please check your TM server credentials: String reference not set to an instance of a String. Parameter name: s System.ArgumentNullException: String reference not set to an instance of a String. Parameter name: s at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles) at Sdl.LanguagePlatform.TranslationMemoryApi.IdentityInfoCacheCredentialStore.ToUserCredentials(TranslationProviderCredential translationProviderCredential) at Sdl.LanguagePlatform.TranslationMemoryApi.IdentityInfoCacheCredentialStore.AddCredential(Uri uri, TranslationProviderCredential credential) at Sdl.LanguagePlatform.TranslationMemoryApi.TranslationProviderCredentialStore.AddCredential(Uri uri, TranslationProviderCredential credential) at Sdl.ProjectAutomation.FileBased.ProjectCredentials.AddCredential(Uri uri, String credential)
I did some debugging, as well as looked at the 2021 version, and found out why this error occurs.
The credentials string that we pass to the API includes the user name, password and user type (CustomUser).
In previous versions, the code in Sdl.LanguagePlatform.TranslationMemoryApi.IdentityInfoCacheCredentialStore.ToUserCredentials would check if the user type was Saml2User, and if so it would add the provided SSO credentials, namely SAML token, Auth token and expiration date.
In Studio 2022, this check is removed and the SSO credentials are always expected, and since we don't provide them, an error appears when trying to parse a nonexistent expiration date.
I am not sure if this behavior is intended by design or a bug. Do we now always need to provide these extra credentials that were not needed before? I myself don't know enough about SAML to judge if this makes any sense, so I figured I'd ask here.
Bram van der Steen