AX 2012 [Error] : Violation of PRIMARY KEY constraint 'PK_ModelElementData_ElementHandle'. Cannot insert duplicate key in object 'dbo.ModelElementData'.

Hi Developers,

Today, we will talk about below error in AX 2012 R2/R3 or D365 FO. When we upgrade or apply an hot-fix into AX environment, we might face some challenges, suppose you are installing hot-fix in your environment and face an error, open your log file and check for error in the end of the file, one is below:

AxUtil call returned errors:
Violation of PRIMARY KEY constraint 'PK_ModelElementData_ElementHandle'. Cannot insert duplicate key in object 'dbo.ModelElementData'. The duplicate key value is (822606, 1).
The statement has been terminated.
Error updating model database: Microsoft.Dynamics.Setup.AxSetupException: AxUtil call returned errors:Violation of PRIMARY KEY constraint 'PK_ModelElementData_ElementHandle'. Cannot insert duplicate key in object 'dbo.ModelElementData'. The duplicate key value is (822606, 1).
The statement has been terminated.

   at Microsoft.Dynamics.Setup.Misc.ValidateAxUtilStatus(AxUtilContext context)
   at Microsoft.Dynamics.Setup.DatabaseSqlModel.DatabaseSqlModelInstanceCommon.ImportModelFiles(IEnumerable`1 filenames, IEnumerable`1 modelsToReplace)
   at Microsoft.Dynamics.Setup.DatabaseSqlModel.DatabaseSqlModelInstanceUpdate.Execute()
An error occurred during setup of Model Database.

Solution:

In this error, we can see that there is a duplicate key associate with table ModelElementData. So we need to check and delete it according.

1) Check if there is any data available with the associate duplicate id.

[Use Your_Model_DB]
select * from ModelElementData where ElementHandle = 822606;

2) And, if you find any data is available in this table associate with duplicate key, delete it.

[Use Your_Model_DB]
delete from ModelElementData where ElementHandle = 822606;

3) Now, re-run your hot-fix. It should be successful this time.

Author:
Chirag Gupta
Microsoft Dynamics 365 AX Technical Consultant at IBM Bangalore

Date:
5-Sep-2019

Happy Learning !!

Comments

Popular posts from this blog

[Solved] : Error: String or binary data would be truncated. Cannot execute a data definition language command on Vendor (VendLedgerReconciliationTmp)

AX 2012 - Command prompt compilation / AxBuild.exe for Parallel Compile on AOS of X++ to P-code / Parallel Compilation

AX 2012 - How to send SSRS report in email as an attachment using X++

AX 2012 - How to stop AOS when services got stuck at stopping status

Error: There was no endpoint listening at net.tcp://your_server_name:8201/Dynamics AX/Services…

AX 2012 - How to make a form field mandatory

Fetch vendor address using X++ in AX 2012

[Error] - Error in unit of amount in currency KES. Must be rounded to 0.01 | The unit of 37.563.5343100000000000 KES being posted to account 32710001-- is outside the current penny rounding threshold | Posting has been canceled

AX 2012 - How to print current date and time on SSRS Report

For more information about this error navigate to the report server on the local server machine, or enable remote errors in AX 2012