"Not have enough privilege to complete Create operation for an Sdk entity" exception when you register a CRM 4.0 plug-in

CRM 4.0 introduces the concept of plug-ins that will replace the callouts. CRM 4.0 Plug-in is custom business logic that can be integrated into CRM 4.0's platform. Plug-ins are much more powerful than callouts, but require more work to be deployed successfully. It's sometimes not easy to be successful with plug-in registration if you forget about a specific step.

Today we were trying to deploy new plug-in assembly into CRM 4.0 database. First we used Plug-in Registration Tool for CRM 4.0 delivered with CRM 4.0 SDK. After that we were trying to register plug-in assembly with our custom application.

Unfortunately in both cases the operation was unsuccessful and we were getting the strange looking Soap Exception "Not have enough privilege to complete Create operation for an Sdk entity". At the same time we were able to create any other business entities like contacts, accounts...

Unhandled Exception: System.Web.Services.Protocols.SoapException: Server was unable to process request.

Detail:

<detail>

<error>

<code>0x80040256</code>

<description>Not have enough privilege to complete Create operation for an Sdk entity.</description>

<type>Platform</type>

</error>

</detail>

It looked pretty strange because our user had System Administrator role and in CRM it had all the rights. After few attempts we realized that Active Directory account used to deploy and register new assembly into CRM 4.0 database has to be added into Deployment Administrators group in CRM Deployment Manager.

Here are the steps to accomplish this:

1. Open CRM 4.0 Deployment Manager Console (Start -> All Programs -> Microsoft Dynamics CRM -> Deployment Manager).

2. Go to “Deployment Administrators” node and choose “New Deployment Administrator…” option.

3. Insert appropriate user and confirm selection by clicking “OK” button.

After completing this step, both users were able to register and deploy the assembly successfully. So, remember about this when you try to play with plug-ins with user that you added to CRM :)