The MIP SDK login process fails to clamp the dueTime argument in calls to Timer.Change(dueTime, period). As a result, if a customer has increased their ClientTokenTimeoutMinutes value from 240 to a value greater than ~71582 minutes in C:\Program Files\Milestone\XProtect Management Server\IIS\ManagementServer\Web.config, an ArgumentOutOfRangeException exception is thrown and the login fails.
Related to this, the error handling in VideoOS.Platform.SDK.UI.LoginDialog.DialogLoginForm appears to swallow any exceptions that arenāt explicitly handled so when you run into this kind of login issue in the DialogLoginForm, you will only see āLogin failed because of an errorā in the UI and nothing meaningful is written to the MIP SDK log.
Hereās a stacktrace from the MIP SDK log when not using the login dialog:
Error: ProcessRecord (): System.ArgumentOutOfRangeException: Time-out interval must be less than 2^32-2.
Parameter name: dueTime
at System.Threading.Timer.Change(Int64 dueTime, Int64 period)
at VideoOS.Platform.SDK.Config.LoginServerBase.NewTokenAquired()
at VideoOS.Platform.SDK.Config.LoginServerBase.Login(Uri uri)
at VideoOS.Platform.SDK.Config.SystemInfo.Login()
at VideoOS.Platform.SDK.Platform.SDKConfiguration.TryLogin(Uri uri, Boolean masterOnly)
at VideoOS.Platform.SDK.Platform.SDKConfiguration.VideoOS.Platform.SDK.Platform.ISDKConfiguration.Login(Uri uri, Boolean masterOnly)
at VideoOS.Platform.SDK.EnvironmentService.Login(Uri serverUri, Boolean masterOnly)
at VideoOS.Platform.SDK.EnvironmentService.Login(Uri serverUri, Boolean masterOnly, Guid integrationId, String integrationName, String version, String manufacturerName)
at VideoOS.Platform.SDK.Environment.Login(Uri serverUri, Guid integrationId, String integrationName, String version, String manufacturerName, Boolean masterOnly)
