Question

I have deployed a solution in production and since then, a specific dialog is not working correctly. In the solution I have imported in production, that dialog does exist but I have not modified it. Only added a few other workflows to it and when I deployed, I chose to overwrite all customization in the target environment (production).

For some reasons, security roles were modified even though they were not part of the solution (?). Since then, we fixed the roles so our workflows/dialogs would work again but we are still having an issue with one dialog.

Here is the log file:

>Crm Exception: Message: SecLib::AccessCheckEx failed. Returned hr = -2147187962, ObjectID: 3732d599-343b-e211-ada4-0050569512fe, OwnerId: 8a3819fd-333b-e211-ada4-0050569512fe,  OwnerIdType: 9 and CallingUser: a6e65698-daa2-e211-bd17-0050569512fe. ObjectTypeCode: 2020, objectBusinessUnitId: 765d6665-293b-e211-ada4-0050569512fe, AccessRights: ReadAccess , ErrorCode: -2147187962
[2014-04-15 08:28:37.797] Process: w3wp |Organization:f6ff335a-293b-e211-ada4-0050569512fe |Thread:   13 |Category: Platform.Sdk |User: a094a9a1-29f2-4079-972c-b682b966825c |Level: Error |ReqId: 85a8444a-bcd0-4de6-ada5-30e8eea8a142 | VersionedPluginProxyStepBase.Execute  ilOffset = 0x65
>Web Service Plug-in failed in SdkMessageProcessingStepId: {CFCBBB1B-EA3E-DB11-86A7-000A3A5473E8}; EntityName: queueitem; Stage: 30; MessageName: Retrieve; AssemblyName: Microsoft.Crm.Extensibility.InternalOperationPlugin, Microsoft.Crm.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; ClassName: Microsoft.Crm.Extensibility.InternalOperationPlugin; Exception: Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
   at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Web.Services.Protocols.LogicalMethodInfo.Invoke(Object target, Object[] values)
   at Microsoft.Crm.Extensibility.InternalOperationPlugin.Execute(IServiceProvider serviceProvider)
   at Microsoft.Crm.Extensibility.V5PluginProxyStep.ExecuteInternal(PipelineExecutionContext context)
   at Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context)
Inner Exception: Microsoft.Crm.CrmSecurityException: SecLib::AccessCheckEx failed. Returned hr = -2147187962, ObjectID: 3732d599-343b-e211-ada4-0050569512fe, OwnerId: 8a3819fd-333b-e211-ada4-0050569512fe,  OwnerIdType: 9 and CallingUser: a6e65698-daa2-e211-bd17-0050569512fe. ObjectTypeCode: 2020, objectBusinessUnitId: 765d6665-293b-e211-ada4-0050569512fe, AccessRights: ReadAccess 
   at Microsoft.Crm.BusinessEntities.SecurityLibrary.AccessCheckEx2(ExecutionContext context, SecurityPrincipal principal, SecurityPrincipal ownerPrincipal, Guid objectId, Int32 objectTypeCode, Guid objectBusinessUnitId, AccessRights rights)
   at Microsoft.Crm.BusinessEntities.SecurityLibrary.AccessCheckEx(ExecutionContext context, SecurityPrincipal ownerPrincipal, Guid objectId, Int32 objectTypeCode, Guid objectBusinessUnitId, AccessRights rights)
   at Microsoft.Crm.BusinessEntities.SecurityLibrary.AccessCheckEx(ExecutionContext context, SecurityAttributes attributes, AccessRights rights)
   at Microsoft.Crm.BusinessEntities.SecurityExtension.PostRetrieveHandler(Object sender, ExtensionEventArgs e)
   at Microsoft.Crm.BusinessEntities.BusinessProcessObject.Retrieve(BusinessEntityMoniker moniker, EntityExpression entityExpression, ExecutionContext context, Int32 languageCode, DatabaseQueryTarget queryTarget)
   at Microsoft.Crm.BusinessEntities.BusinessProcessObject.Retrieve(BusinessEntityMoniker moniker, EntityExpression entityExpression, ExecutionContext context, Int32 languageCode)
   at Microsoft.Crm.BusinessEntities.BusinessProcessObject.Retrieve(BusinessEntityMoniker moniker, EntityExpression entityExpression, ExecutionContext context)

I have tried to get more information about the SdkMessageProcessingStepId with ID CFCBBB1B-EA3E-DB11-86A7-000A3A5473E8 but I can't find anything in the tables.

I have made sure the role of the user has proper access to ObjectTypeCode of 2020 and this by the way, works fine in another environment (TEST).

Sorry for the formatting, I have done my best to make it readable.

Was it helpful?

Solution

The error is clear:

SecLib::AccessCheckEx failed

this means a permission error

ObjectTypeCode: 2020

the entity involved, in this case Queue

AccessRights: ReadAccess

missing privilege, in this case Read

CallingUser: a6e65698-daa2-e211-bd17-0050569512fe

The user id that is missing this privilege.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top