Scenario:
You recently upgraded to a newer version of ITMS (IT Management Solution) and installed corresponding cumulative pointfixes.
A repair/reconfigure was attempted due to an issue with the installation of on the SMP Server. However, It failed.
SIM (Symantec Installation Manager) showed the following error message during the initial re-configuration steps:Configuration Error.
A critical error has occurred.
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Altiris.NS.Exceptions.AeXException: Unable to load the specified item: 8c6ee22e-4d8e-4023-b4e2-bd6e71e55e54 ---> Altiris.NS.Exceptions.AeXException: Unable to load the specified item: 8c6ee22e-4d8e-4023-b4e2-bd6e71e55e54 ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.
Configuration error while attempting: Service configuration.
The NS and SIM Installation logs showed the following error messages:
Entry 1:
Impersonate EXAMPEL\SVC_ALTIRIS to configure services.
-----------------------------------------------------------------------------------------------------
Date: 4/23/2025 6:40:50 PM, Tick Count: 3006312 (00:50:06.3120000), Size: 309 B
Process: ReflectionProxy (9008), Thread ID: 12, Module: Altiris.NS.dll
Priority: 4, Source: ServiceConfiguration.ConfigureServices
Entry 2:
Grant EXAMPLE\SVC_ALTIRIS "Act as part of the Operating System" privilege.
-----------------------------------------------------------------------------------------------------
Date: 4/23/2025 6:40:50 PM, Tick Count: 3006359 (00:50:06.3590000), Size: 329 B
Process: ReflectionProxy (9008), Thread ID: 12, Module: Altiris.NS.dll
Priority: 4, Source: ServiceConfiguration.ConfigureServices
Entry 3:
Grant EXAMPLE\SVC_ALTIRIS "Debug program" privilege.
-----------------------------------------------------------------------------------------------------
Date: 4/23/2025 6:40:50 PM, Tick Count: 3006359 (00:50:06.3590000), Size: 307 B
Process: ReflectionProxy (9008), Thread ID: 12, Module: Altiris.NS.dll
Priority: 4, Source: ServiceConfiguration.ConfigureServices
Entry 4:
Grant EXAMPLE\SVC_ALTIRIS "Logon as batch job" privilege.
-----------------------------------------------------------------------------------------------------
Date: 4/23/2025 6:40:50 PM, Tick Count: 3006359 (00:50:06.3590000), Size: 312 B
Process: ReflectionProxy (9008), Thread ID: 12, Module: Altiris.NS.dll
Priority: 4, Source: ServiceConfiguration.ConfigureServices
Entry 5:
New application identity user: name=EXAMPLE\SVC_ALTIRIS, sid=S-1-5-21-33755162-1517304931-1609722162-1526653
-----------------------------------------------------------------------------------------------------
Date: 4/23/2025 6:40:50 PM, Tick Count: 3006375 (00:50:06.3750000), Size: 363 B
Process: ReflectionProxy (9008), Thread ID: 12, Module: Altiris.NS.dll
Priority: 4, Source: AppIdentity.PrepareAppIdentityResource
Entry 6:
Item save to DB failed: 2e1f478a-4986-4223-9d1e-b5920a63ab41, (fromClone=False, user=EXAMPLE\svc_altiris)
Unable to load the specified item: 8c6ee22e-4d8e-4023-b4e2-bd6e71e55e54
[AeXException @ Altiris.NS.dll]
at Altiris.NS.ItemManagement.Item.Load(Guid)
at Altiris.NS.ItemManagement.Item.LoadInstance<T>(T, Guid, ItemLoadFlags)
at Altiris.NS.ItemManagement.Item.GetItemInternal(Guid, IEnumerable<Guid>, ItemLoadFlags, out bool)
at Altiris.NS.ItemManagement.Item.GetItemInternal(Guid, IEnumerable<Guid>, ItemLoadFlags)
at Altiris.NS.ResourceManagement.ResourceKeyHelper.GetMergingResourceKeysRaw(Guid)
at Altiris.NS.ResourceManagement.Resource.get_ResourceTypeMergeKeys()
at Altiris.NS.ResourceManagement.Resource.IsMergingKey(ResourceKey)
at System.Linq.WhereEnumerableIterator<>.MoveNext()
at System.Collections.Generic.List<>.InsertRange(int, IEnumerable<T>)
at Altiris.NS.ResourceManagement.Resource.ExtractMergeKeys()
at Altiris.NS.ResourceManagement.Resource.DetectDuplicateItems(DuplicateItemArgs)
at Altiris.NS.ItemManagement.Item.HandleDuplicateItemsInTheDB()
at Altiris.NS.ItemManagement.Item.Save()
Index was outside the bounds of the array.
[IndexOutOfRangeException @ System.Data.dll]
at System.Data.SqlClient.SqlDataReader.CheckHeaderIsReady(int, bool, string)
at System.Data.SqlClient.SqlDataReader.IsDBNull(int)
at Altiris.NS.DataAccessLayer.Implementation.Altiris_NS_ResourceManagement_DataAccessLayerResourceManagementDataAccessLayer.spResourceTypeMergeKeyGet1(Guid)
at Altiris.Resource.ResourceTypeItem.OnLoad()
at Altiris.NS.ItemManagement.Item.Load(Guid)
Exception logged from:
at Altiris.Diagnostics.Logging.EventLog.ReportException(int, string, string, Exception, string)
at Altiris.NS.ItemManagement.Item.Save()
at Altiris.NS.Utilities.AppIdentity.EnsureAppIdentityCredentialTry(string, RoleResource, SecurityIdentifier)
at Altiris.NS.ContextManagement.Altiris.NS.ContextManagement.AdminDatabaseContext+<>c_DisplayClass28_0<>.<PerformTransactedDeadlockRetry>b_0(IDatabaseContext)
at Altiris.Database.RetryActionRequest<>.Perform(bool)
at Altiris.Database.DatabaseContext<>.PerformWithDeadlockRetryHelper(int, int, bool, Getter<IDatabaseContext>, Action<IDatabaseContext>, Action<DeadlockRetryArgs>, bool, string, string)
at Altiris.NS.Utilities.AppIdentity.EnsureAppIdentityCredential(string, SecurityIdentifier, ref RoleResource)
at Altiris.NS.Utilities.AppIdentity.PrepareAppIdentityResource(string, out RoleResource)
at Altiris.NS.Utilities.AppIdentity.SetApplicationId(string, string)
at Altiris.NS.Installation.ServiceConfiguration.ConfigureServices(string, string)
at System.RuntimeMethodHandle.InvokeMethod(object, object[], Signature, bool)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(object, object[], object[])
at System.Reflection.RuntimeMethodInfo.Invoke(object, BindingFlags, Binder, object[], CultureInfo)
at ReflectionProxy.ReflectionProxy.ConfigureServices(InstallationCredential)
at .SyncInvokeConfigureServices(object, object[], object[])
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(object, object[], out object[])
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(ref MessageRpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(ref MessageRpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(ref MessageRpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(bool)
at System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContext, bool, OperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext, OperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult)
at System.ServiceModel.Dispatcher.ChannelHandler.OnAsyncReceiveComplete(IAsyncResult)
at System.Runtime.Fx+AsyncThunk.UnhandledExceptionFrame(IAsyncResult)
at System.Runtime.AsyncResult.Complete(bool)
at System.ServiceModel.Channels.TransportDuplexSessionChannel+TryReceiveAsyncResult.OnReceive(IAsyncResult)
at System.Runtime.Fx+AsyncThunk.UnhandledExceptionFrame(IAsyncResult)
at System.Runtime.AsyncResult.Complete(bool)
at System.ServiceModel.Channels.SynchronizedMessageSource+ReceiveAsyncResult.OnReceiveComplete(object)
at System.ServiceModel.Channels.SessionConnectionReader.OnAsyncReadComplete(object)
at System.Runtime.Fx+AsyncThunk.UnhandledExceptionFrame(IAsyncResult)
at System.Net.LazyAsyncResult.Complete(IntPtr)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(object, IntPtr)
at System.Net.Security.NegotiateStream.ProcessFrameBody(int, byte[], int, int, AsyncProtocolRequest)
at System.Net.Security.NegotiateStream.ReadCallback(AsyncProtocolRequest)
at System.Net.AsyncProtocolRequest.CompleteRequest(int)
at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(int)
at System.Net.FixedSizeReader.ReadCallback(IAsyncResult)
at System.Runtime.AsyncResult.Complete(bool)
at System.ServiceModel.Channels.ConnectionStream+IOAsyncResult.OnAsyncIOComplete(object)
at System.ServiceModel.Channels.PipeConnection.OnAsyncReadComplete(bool, int, int)
at System.ServiceModel.Channels.OverlappedContext.CompleteCallback(uint, uint, NativeOverlapped*)
at System.Runtime.Fx+IOCompletionThunk.UnhandledExceptionFrame(uint, uint, NativeOverlapped*)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(uint, uint, NativeOverlapped*)
-----------------------------------------------------------------------------------------------------
Date: 4/23/2025 6:40:50 PM, Tick Count: 3006406 (00:50:06.4060000), Size: 7.33 KB
Process: ReflectionProxy (9008), Thread ID: 12, Module: Altiris.NS.dll
Priority: 1, Source: Resource.SaveResourceToDatabase
Entry 7:
ConfigureNS - task_Completed(): Configuration Task Configurando servicios... Failed: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Altiris.NS.Exceptions.AeXException: Unable to load the specified item: 8c6ee22e-4d8e-4023-b4e2-bd6e71e55e54 ---> Altiris.NS.Exceptions.AeXException: Unable to load the specified item: 8c6ee22e-4d8e-4023-b4e2-bd6e71e55e54 ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.Data.SqlClient.SqlDataReader.CheckHeaderIsReady(Int32 columnIndex, Boolean permitAsync, String methodName)
at System.Data.SqlClient.SqlDataReader.IsDBNull(Int32 i)
at Altiris.NS.DataAccessLayer.Implementation.Altiris_NS_ResourceManagement_DataAccessLayerResourceManagementDataAccessLayer.spResourceTypeMergeKeyGet1(Guid ResourceTypeGuid)
at Altiris.Resource.ResourceTypeItem.OnLoad()
at Altiris.NS.ItemManagement.Item.Load(Guid itemGuid)
--- End of inner exception stack trace —
at Altiris.NS.ItemManagement.Item.Load(Guid itemGuid)
at Altiris.NS.ItemManagement.Item.LoadInstance[T](T item, Guid itemGuid, ItemLoadFlags itemLoadFlags)
at Altiris.NS.ItemManagement.Item.GetItemInternal(Guid itemGuid, IEnumerable`1 accessPermissions, ItemLoadFlags itemLoadFlags, Boolean& cacheHit)
at Altiris.NS.ItemManagement.Item.GetItemInternal(Guid itemGuid, IEnumerable`1 accessPermissions, ItemLoadFlags itemLoadFlags)
at Altiris.NS.ResourceManagement.ResourceKeyHelper.GetMergingResourceKeysRaw(Guid resourceTypeGuid)
at Altiris.NS.ResourceManagement.Resource.get_ResourceTypeMergeKeys()
at Altiris.NS.ResourceManagement.Resource.IsMergingKey(ResourceKey key)
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
at Altiris.NS.ResourceManagement.Resource.ExtractMergeKeys()
at Altiris.NS.ResourceManagement.Resource.DetectDuplicateItems(DuplicateItemArgs args)
at Altiris.NS.ItemManagement.Item.HandleDuplicateItemsInTheDB()
at Altiris.NS.ItemManagement.Item.Save()
at Altiris.NS.Utilities.AppIdentity.EnsureAppIdentityCredentialTry(String sUserName, RoleResource adminRole, SecurityIdentifier sid)
at Altiris.NS.ContextManagement.AdminDatabaseContext.<>c_DisplayClass28_0`1.<PerformTransactedDeadlockRetry>b_0(IDatabaseContext ctx)
at Altiris.Database.DatabaseContext`1.RetryActionRequest.Perform(Boolean throwIfRetriedOut)
at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetryHelper(Int32 retries, Int32 retryDelay, Boolean outerTransaction, Getter`1 getContext, Action`1 action, Action`1 retry, Boolean selfTransaction, String deadlockMessage, String category)
at Altiris.NS.Utilities.AppIdentity.EnsureAppIdentityCredential(String sUserName, SecurityIdentifier sid, RoleResource& adminRole)
at Altiris.NS.Utilities.AppIdentity.PrepareAppIdentityResource(String sUserName, RoleResource& adminRole)
at Altiris.NS.Utilities.AppIdentity.SetApplicationId(String sUserName, String sPassword)
--- End of inner exception stack trace —
at Altiris.NS.Utilities.AppIdentity.SetApplicationId(String sUserName, String sPassword)
at Altiris.NS.Installation.ServiceConfiguration.ConfigureServices(String username, String userpassword)
--- End of inner exception stack trace —
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at ReflectionProxy.ReflectionProxy.ConfigureServices(InstallationCredential credentials)
at SyncInvokeConfigureServices(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Altiris.NS.Exceptions.AeXException: Unable to load the specified item: 8c6ee22e-4d8e-4023-b4e2-bd6e71e55e54 ---> Altiris.NS.Exceptions.AeXException: Unable to load the specified item: 8c6ee22e-4d8e-4023-b4e2-bd6e71e55e54 ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.Data.SqlClient.SqlDataReader.CheckHeaderIsReady(Int32 columnIndex, Boolean permitAsync, String methodName)
at System.Data.SqlClient.SqlDataReader.IsDBNull(Int32 i)
at Altiris.NS.DataAccessLayer.Implementation.Altiris_NS_ResourceManagement_DataAccessLayerResourceManagementDataAccessLayer.spResourceTypeMergeKeyGet1(Guid ResourceTypeGuid)
at Altiris.Resource.ResourceTypeItem.OnLoad()
at Altiris.NS.ItemManagement.Item.Load(Guid itemGuid)
--- End of inner exception stack trace —
at Altiris.NS.ItemManagement.Item.Load(Guid itemGuid)
at Altiris.NS.ItemManagement.Item.LoadInstance[T](T item, Guid itemGuid, ItemLoadFlags itemLoadFlags)
at Altiris.NS.ItemManagement.Item.GetItemInternal(Guid itemGuid, IEnumerable`1 accessPermissions, ItemLoadFlags itemLoadFlags, Boolean& cacheHit)
at Altiris.NS.ItemManagement.Item.GetItemInternal(Guid itemGuid, IEnumerable`1 accessPermissions, ItemLoadFlags itemLoadFlags)
at Altiris.NS.ResourceManagement.ResourceKeyHelper.GetMergingResourceKeysRaw(Guid resourceTypeGuid)
at Altiris.NS.ResourceManagement.Resource.get_ResourceTypeMergeKeys()
at Altiris.NS.ResourceManagement.Resource.IsMergingKey(ResourceKey key)
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
at Altiris.NS.ResourceManagement.Resource.ExtractMergeKeys()
at Altiris.NS.ResourceManagement.Resource.DetectDuplicateItems(DuplicateItemArgs args)
at Altiris.NS.ItemManagement.Item.HandleDuplicateItemsInTheDB()
at Altiris.NS.ItemManagement.Item.Save()
at Altiris.NS.Utilities.AppIdentity.EnsureAppIdentityCredentialTry(String sUserName, RoleResource adminRole, SecurityIdentifier sid)
at Altiris.NS.ContextManagement.AdminDatabaseContext.<>c_DisplayClass28_0`1.<PerformTransactedDeadlockRetry>b_0(IDatabaseContext ctx)
at Altiris.Database.DatabaseContext`1.RetryActionRequest.Perform(Boolean throwIfRetriedOut)
at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetryHelper(Int32 retries, Int32 retryDelay, Boolean outerTransaction, Getter`1 getContext, Action`1 action, Action`1 retry, Boolean selfTransaction, String deadlockMessage, String category)
at Altiris.NS.Utilities.AppIdentity.EnsureAppIdentityCredential(String sUserName, SecurityIdentifier sid, RoleResource& adminRole)
at Altiris.NS.Utilities.AppIdentity.PrepareAppIdentityResource(String sUserName, RoleResource& adminRole)
at Altiris.NS.Utilities.AppIdentity.SetApplicationId(String sUserName, String sPassword)
--- End of inner exception stack trace —
at Altiris.NS.Utilities.AppIdentity.SetApplicationId(String sUserName, String sPassword)
at Altiris.NS.Installation.ServiceConfiguration.ConfigureServices(String username, String userpassword)
--- End of inner exception stack trace —
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at ReflectionProxy.ReflectionProxy.ConfigureServices(InstallationCredential credentials)
at SyncInvokeConfigureServices(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
[System.ServiceModel.FaultException @ mscorlib]
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at ReflectionProxy.IReflectionProxy.ConfigureServices(InstallationCredential credentials)
at Symantec.Installation.ServicesTask81.<StartImpl>d__4.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Symantec.Installation.NSConfiguration.Tasks.SerialTask.<Start>d__0.MoveNext()
Exception logged from:
at Symantec.Installation.Logging.LogActivity.ReportException(Int32 severity, String strMessage, String category, Exception exception, String footer)
at Symantec.Installation.Logging.LogActivity.ReportException(String strMessage, String category, Exception exception)
at Symantec.Installation.ConfigureNS.task_Completed(Object sender, CompletedEventArgs e)
at Symantec.Installation.Task.OnCompleted(Exception ex)
at Symantec.Installation.NSConfiguration.Tasks.SerialTask.<Start>d__0.MoveNext()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(Action action, Boolean allowInlining, Task& currentTask)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted)
at System.Threading.Tasks.Task`1.TrySetException(Object exceptionObject)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.SetException(Exception exception)
at Symantec.Installation.ServicesTask81.<StartImpl>d__4.MoveNext()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
-----------------------------------------------------------------------------------------------------
Date: 4/23/2025 6:40:50 PM, Tick Count: 3006421 (00:50:06.4210000), Size: 12.03 KB
Process: SymantecInstallationManager (8084), Thread ID: 10, Module: SymantecInstallationManager.exe
Priority: 1, Source: Symantec.Installation.ConfigureNS.task_Completed
Even if you try to run a Full repair or a reconfiguration using SIM, the repair process fails the same way.
ITMS 8.7.x
Product repair in Symantec Installation Manager (SIM) fails if a point fix that modified the database had been applied earlier.
This issue is caused by the changes that a pointfix adds to the binaries on the SMP Server and database.
In this particular scenario, the issue was caused by:
In general - you can't reconfigure the product after pointfixes installation without risking a version mismatch.
This issue has been addressed with our most recent SIM version (post 8.7.4035)
There are no simple workarounds for prior SIM releases (8.7.4035 or earlier).
There are 2 possible options: