jexperience upgrade

Error adding personalization in jExperience - Cannot contact remote server: error 500 - ConstraintViolationException

Question

I recently installed jExperience but I am getting an error in the UI every time I try to add a personalization: Cannot contact remote server: error 500

Checking Jahia logs I observed the following error:

org.jahia.bin.Render: An error occurs when executing action optimize
javax.jcr.nodetype.ConstraintViolationException: Couldn't find definition for property jcr:title

How can I fix this error?

Answer

This error happens because jExperience is trying to create the personalization node in JCR but Jahia is getting an old definition for this nodetype.

You can check a couple of things in your application to resolve this issue:

  • Do you have older versions of jExperience or Marketing Factory installed in Jahia? If so, please remove all older versions and try again.
  • Try to fully uninstall and then reinstall your jExperience module. Try again.
  • Go to Installed Definitions Browser on <server>/modules/tools/definitionsBrowser.jsp and verify if you have an entry for Marketing Factory module. If you found one, then you can remove it by clicking on the X button next to the name of the module. Now update your jExperience module from OSGI Console <server>/tools/osgi/console/bundles and try again.
  • If none of the actions above addresses the issue, please make sure that your jExperience version is the only one installed in your application and that you don't have any version of Marketing Factory installed, then you can:
  1. Stop Jahia
  2. Flush the table jahia_nodetypes_provider
  3. Start Jahia

Now you should be able to add your personalizations.