I am getting an error in a registration form built with Caldera Forms and the integration with CiviCRM's Form Processor

Error: Action Create or update phone number failed. Caused by contact_id is not valid: "id"

where "id" should be the CiviCRM contact_id, but instead the CiviCRM Form Processor is using civicrm_email.id, and not civicrm_email.contact_id.

The CiviCRM Form Processor is set up in the following way:

"actions": [

        "name": "Contact: Get By Email or Create By Email and Names",
        "configuration": {
            "contact_type": "1"
        "mapping": {
            "email": "input.email",
            "first_name": "input.first_name",
            "last_name": "input.last_name"
        "name": "Contact: Create or update CiviCRM Fields linked to the CiviCRM Contact",           
        "mapping": {
          "contact_id": "action.get_or_create_by_email.contact_id",
          <more CiviCRM fields to be created/updated based in the input fields of the Caldera 


where "contact_id": "action.get_or_create_by_email.contact_id" is retrieving the civicrm_email.id, not civicrm_email.contact_id and consequently I am getting the following DB Error:

constraint violation: a foreign key constraint fails

as the Form Processor is trying to create/update fields of the CiviCRM Contact, but there is not contact_id with id = civicrm_email.id.

When I disable the "User Registration" Form Processor in the Caldera Form , which creates the WordPress User, the process works perfectly. But if this Form Processor is enabled to create the WordPress user, the process fails.

Any clue will be very much appreciated.

1 Answer 1


There was a regression in the action-provider extension that contains the code for the "Get By Email or Create By Email and Names" action.

This is fixed in the extension's master branch but a new release has not been tagged yet.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.