Getting multiple errors referring to: MainController failure. The item attributes for item 'GUID' contain the NoModify attribute which prevents it from being saved.
search cancel

Getting multiple errors referring to: MainController failure. The item attributes for item 'GUID' contain the NoModify attribute which prevents it from being saved.

book

Article ID: 202511

calendar_today

Updated On:

Products

IT Management Suite

Issue/Introduction

The customer started to notice the following error on a regular basis:

MainController failure.

The item attributes for item 'ee1658ca-d78d-1f15-e850-cb75db7f0970' contain the NoModify attribute which prevents it from being saved.
[Altiris.NS.Exceptions.AeXUnauthorizedAccessException @ Altiris.NS]
at Altiris.NS.ItemManagement.Item.RaiseItemLoadFlagsSecurityException(String message)
at Altiris.NS.ItemManagement.Item.CheckCanSaveItem()
at Altiris.NS.ItemManagement.Item.ThrowIfSaveIsNotAllowed()
at Altiris.NS.ItemManagement.Item.Save()
at Altiris.DirectoryServices.NSDirectoryItems.DirectoryScopeCollection.<Save>b__22_0(IDatabaseContext ac)
at Altiris.Database.DatabaseContext`1.RetryAction(Int32 retries, Boolean transacted, Getter`1 getContext, Action`1 action, Action`1 retry, DeadlockRetryArgs& re, Exception& exception, Boolean inTransaction)
at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetryHelper(Int32 retries, Boolean inTransaction, Getter`1 getContext, Action`1 action, Action`1 retry, Boolean transacted)
at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetry(Int32 retries, Boolean startNewTransaction, Nullable`1 isolationLevel, Boolean independentContext, Action`1 action, Action`1 retry)
at Altiris.DirectoryServices.NSDirectoryItems.DirectoryScopeCollection.Save()
at Altiris.NS.StandardItems.Collection.Scoping.SystemScopeCollection.OnSchedule(String identifier)
at Altiris.NS.StandardItems.Targeting.TargetHelper.ReevaluateFilter(ResourceTargetUpdateContext ctx, IResourceTarget target, ITargetFilter filter, Boolean completeUpdate)
at Altiris.NS.StandardItems.Targeting.TargetHelper.ReevaluateFilters(IResourceTarget target, Boolean completeUpdate)
at Altiris.NS.StandardItems.Targeting.TargetHelper.UpdateTarget(CodeProfiler cp, String type, IResourceTarget target, Boolean completeUpdate, Boolean invalidateDependencies, Boolean throwOnError)
at Altiris.NS.StandardItems.Targeting.TargetHelper.InvalidateTargetMembership(Guid targetGuid, Boolean completeUpdate, Boolean invalidateDependencies)
at Symantec.ActivityCenter.Api.Models.Target.TargetProvider.<>c_DisplayClass2_0.<RunTarget>b_0()
at Altiris.NS.Security.SecurityContext.<>c_DisplayClass33_0.<ExecuteAsAppIdentity>b_1(SecurityContext ctx)
at Altiris.NS.Security.SecurityContext.ExecuteAs[T,TK](EExecuteAs e, TK trustee, Func`2 createContext, Func`2 action)
at Symantec.ActivityCenter.Api.Models.Target.TargetProvider.RunTarget(Target target, Boolean updateMembership)
at Symantec.ActivityCenter.Api.Helpers.ComputerHelper.GetComputerTargetResources(TargetDataGridRequestSpecification request)
at Symantec.ActivityCenter.Api.Controllers.MainController.GetComputerTargetResources(TargetDataGridRequestSpecification request)
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c_DisplayClass6_2.<GetExecutor>b_2(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
— 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 System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.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 System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.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 System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__6.MoveNext()

Exception logged from:
at Symantec.ActivityCenter.Api.Controllers.ApiControllerExceptionHandlerAttribute.OnException(System.Web.Http.Filters.HttpActionExecutedContext)
at System.Web.Http.Filters.ExceptionFilterAttribute.OnExceptionAsync(System.Web.Http.Filters.HttpActionExecutedContext, System.Threading.CancellationToken)
at System.Web.Http.Filters.ExceptionFilterAttribute+<ExecuteExceptionFilterAsyncCore>d__3.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<TStateMachine>(TStateMachine&)
at System.Web.Http.Filters.ExceptionFilterAttribute.ExecuteExceptionFilterAsyncCore(System.Web.Http.Filters.HttpActionExecutedContext, System.Threading.CancellationToken)
at System.Web.Http.Filters.ExceptionFilterAttribute.System.Web.Http.Filters.IExceptionFilter.ExecuteExceptionFilterAsync(System.Web.Http.Filters.HttpActionExecutedContext, System.Threading.CancellationToken)
at System.Web.Http.Controllers.ExceptionFilterResult+<ExecuteAsync>d__6.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder<TResult>.Start<TStateMachine>(TStateMachine&)
at System.Web.Http.Controllers.ExceptionFilterResult.ExecuteAsync(System.Threading.CancellationToken)
at System.Web.Http.ApiController.ExecuteAsync(System.Web.Http.Controllers.HttpControllerContext, System.Threading.CancellationToken)
at System.Web.Http.Dispatcher.HttpControllerDispatcher+<SendAsync>d__15.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder<TResult>.Start<TStateMachine>(TStateMachine&)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken)
at System.Net.Http.HttpMessageInvoker.SendAsync(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken)
at System.Web.Http.Dispatcher.HttpRoutingDispatcher.SendAsync(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken)
at System.Net.Http.DelegatingHandler.SendAsync(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken)
at Symantec.ActivityCenter.Api.Controllers.ApiControllerAntiForgeryHandler.SendAsync(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken)
at System.Net.Http.DelegatingHandler.SendAsync(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken)
at System.Web.Http.HttpServer+<SendAsync>d__24.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder<TResult>.Start<TStateMachine>(TStateMachine&)
at System.Web.Http.HttpServer.SendAsync(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken)
at System.Net.Http.HttpMessageInvoker.SendAsync(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken)
at System.Web.Http.WebHost.HttpControllerHandler+<ProcessRequestAsyncCore>d__12.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<TStateMachine>(TStateMachine&)
at System.Web.Http.WebHost.HttpControllerHandler.ProcessRequestAsyncCore(System.Web.HttpContextBase)
at System.Web.TaskAsyncHelper.BeginTask(System.Func<System.Threading.Tasks.Task>, AsyncCallback, Object)
at System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStepImpl(System.Web.HttpApplication+IExecutionStep)
at System.Web.HttpApplication.ExecuteStep(System.Web.HttpApplication+IExecutionStep, Boolean&)
at System.Web.HttpApplication+PipelineStepManager.ResumeSteps(Exception)
at System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext, AsyncCallback)
at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest, System.Web.HttpContext)
at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)
at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus&)
at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus&)
at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)

HTTP [POST]: http://altsmp.domain.com/altiris/activitycenter/api/computertargets/resources

timings: [[R] 00:00:06.4216858(W: 00:00:00)];
response: [200 OK]; x-smp-nsversion: [8.5.5713.0];

-----------------------------------------------------------------------------------------------------
Date: 10/28/2020 9:46:26 AM, Tick Count: 2532226359 (29.07:23:46.3590000), Size: 9.09 KB
Process: w3wp (1104), Thread ID: 325, Module: Symantec.ActivityCenter.Api.dll
Priority: 1, Source: Symantec.ActivityCenter.Api.Controllers.ApiControllerExceptionHandlerAttribute.OnException

Environment

ITMS 8.5 RU4

 

Cause

Known issue.

This 'ee1658ca-d78d-1f15-e850-cb75db7f0970' GUID refers to an organizational view created from AD during an AD Import. For them, this group contains all the resources imported from an organizational unit. 

This organizational view has attributes of "System, NoModify" and it is used as part of an exclusion for a couple of Targets.

Resolution

This issue is fixed in ITMS 8.6 release.

As a workaround, you can change the attribute for this organizational view from its value 258 to 0 (Normal). That should stop the error message.