When I use rules to change an new node from unpublished node to a published node and change the workflow state from "Creation" to "published" I get the following error and the content is not published or saved.

PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '230-0-all' for key 'PRIMARY': INSERT INTO {node_access} (nid, realm, gid, grant_view, grant_update, grant_delete) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5), (:db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_placeholder_10, :db_insert_placeholder_11), (:db_insert_placeholder_12, :db_insert_placeholder_13, :db_insert_placeholder_14, :db_insert_placeholder_15, :db_insert_placeholder_16, :db_insert_placeholder_17), (:db_insert_placeholder_18, :db_insert_placeholder_19, :db_insert_placeholder_20, :db_insert_placeholder_21, :db_insert_placeholder_22, :db_insert_placeholder_23), (:db_insert_placeholder_24, :db_insert_placeholder_25, :db_insert_placeholder_26, :db_insert_placeholder_27, :db_insert_placeholder_28, :db_insert_placeholder_29), (:db_insert_placeholder_30, :db_insert_placeholder_31, :db_insert_placeholder_32, :db_insert_placeholder_33, :db_insert_placeholder_34, :db_insert_placeholder_35), (:db_insert_placeholder_36, :db_insert_placeholder_37, :db_insert_placeholder_38, :db_insert_placeholder_39, :db_insert_placeholder_40, :db_insert_placeholder_41), (:db_insert_placeholder_42, :db_insert_placeholder_43, :db_insert_placeholder_44, :db_insert_placeholder_45, :db_insert_placeholder_46, :db_insert_placeholder_47), (:db_insert_placeholder_48, :db_insert_placeholder_49, :db_insert_placeholder_50, :db_insert_placeholder_51, :db_insert_placeholder_52, :db_insert_placeholder_53), (:db_insert_placeholder_54, :db_insert_placeholder_55, :db_insert_placeholder_56, :db_insert_placeholder_57, :db_insert_placeholder_58, :db_insert_placeholder_59), (:db_insert_placeholder_60, :db_insert_placeholder_61, :db_insert_placeholder_62, :db_insert_placeholder_63, :db_insert_placeholder_64, :db_insert_placeholder_65), (:db_insert_placeholder_66, :db_insert_placeholder_67, :db_insert_placeholder_68, :db_insert_placeholder_69, :db_insert_placeholder_70, :db_insert_placeholder_71); Array ( [:db_insert_placeholder_0] => 230 [:db_insert_placeholder_1] => all [:db_insert_placeholder_2] => 0 [:db_insert_placeholder_3] => 1 [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => 0 [:db_insert_placeholder_6] => 230 [:db_insert_placeholder_7] => workflow_access [:db_insert_placeholder_8] => 1 [:db_insert_placeholder_9] => 1 [:db_insert_placeholder_10] => 0 [:db_insert_placeholder_11] => 0 [:db_insert_placeholder_12] => 230 [:db_insert_placeholder_13] => workflow_access [:db_insert_placeholder_14] => 2 [:db_insert_placeholder_15] => 1 [:db_insert_placeholder_16] => 0 [:db_insert_placeholder_17] => 0 [:db_insert_placeholder_18] => 230 [:db_insert_placeholder_19] => workflow_access [:db_insert_placeholder_20] => 8 [:db_insert_placeholder_21] => 1 [:db_insert_placeholder_22] => 0 [:db_insert_placeholder_23] => 0 [:db_insert_placeholder_24] => 230 [:db_insert_placeholder_25] => workflow_access [:db_insert_placeholder_26] => 6 [:db_insert_placeholder_27] => 1 [:db_insert_placeholder_28] => 0 [:db_insert_placeholder_29] => 0 [:db_insert_placeholder_30] => 230 [:db_insert_placeholder_31] => workflow_access [:db_insert_placeholder_32] => 5 [:db_insert_placeholder_33] => 1 [:db_insert_placeholder_34] => 0 [:db_insert_placeholder_35] => 0 [:db_insert_placeholder_36] => 230 [:db_insert_placeholder_37] => workflow_access [:db_insert_placeholder_38] => 11 [:db_insert_placeholder_39] => 1 [:db_insert_placeholder_40] => 0 [:db_insert_placeholder_41] => 0 [:db_insert_placeholder_42] => 230 [:db_insert_placeholder_43] => workflow_access [:db_insert_placeholder_44] => 7 [:db_insert_placeholder_45] => 1 [:db_insert_placeholder_46] => 0 [:db_insert_placeholder_47] => 0 [:db_insert_placeholder_48] => 230 [:db_insert_placeholder_49] => workflow_access [:db_insert_placeholder_50] => 4 [:db_insert_placeholder_51] => 1 [:db_insert_placeholder_52] => 1 [:db_insert_placeholder_53] => 0 [:db_insert_placeholder_54] => 230 [:db_insert_placeholder_55] => workflow_access [:db_insert_placeholder_56] => 12 [:db_insert_placeholder_57] => 1 [:db_insert_placeholder_58] => 1 [:db_insert_placeholder_59] => 0 [:db_insert_placeholder_60] => 230 [:db_insert_placeholder_61] => workflow_access [:db_insert_placeholder_62] => 3 [:db_insert_placeholder_63] => 1 [:db_insert_placeholder_64] => 1 [:db_insert_placeholder_65] => 1 [:db_insert_placeholder_66] => 230 [:db_insert_placeholder_67] => workflow_access_owner [:db_insert_placeholder_68] => 1 [:db_insert_placeholder_69] => 1 [:db_insert_placeholder_70] => 0 [:db_insert_placeholder_71] => 0 ) in node_access_write_grants() (line 3425 of /home/hiddenvi/public_html/modules/node/node.module).

Here is the rule:

{ "rules_publish_unpublished_with_state_change" : {
    "LABEL" : "Publish Unpublished with State Change",
    "PLUGIN" : "reaction rule",
    "TAGS" : [ "Publish Content" ],
    "REQUIRES" : [ "rules", "workflow_rules" ],
    "ON" : [ "node_update", "workflow_state_changed" ],
    "IF" : [
      { "NOT node_is_published" : { "node" : [ "node" ] } },
      { "AND" : [
          { "NOT node_is_of_type" : {
              "node" : [ "node" ],
              "type" : { "value" : { "support_ticket" : "support_ticket" } }
            }
          },
          { "workflow_check_transition" : {
              "node" : [ "node" ],
              "old_state" : { "value" : { "ANY" : "ANY" } },
              "new_state" : { "value" : { "6" : "6" } }
            }
          }
        ]
      }
    ],
    "DO" : [
      { "node_publish" : { "node" : [ "node" ] } },
      { "workflow_rules_set_state" : { "node" : [ "node" ], "workflow_state" : { "value" : { "4" : "4" } } } },
      { "drupal_message" : { "message" : "Content has been published and marked as done." } }
    ]
  }
}

Comments

2pha’s picture

I am getting a similar error except I am assigning the author of the node:

PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '180-3-workflow_access' for key 'PRIMARY': INSERT INTO {node_access} (nid, realm, gid, grant_view, grant_update, grant_delete) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5)..........

I have 2 rules running on content creation and am not sure which causes the error, though all works fine until I set a workflow on the content type.

The first rule creates a user when a certain content type is created by an anonymous user, taking the username from an email field in the node.

{ "rules_create_use_when_goto_special_is_created" : {
    "LABEL" : "create use when goto special is created",
    "PLUGIN" : "reaction rule",
    "REQUIRES" : [ "rules", "commerce" ],
    "ON" : [ "node_insert" ],
    "IF" : [
      { "user_has_role" : {
          "account" : [ "site:current-user" ],
          "roles" : { "value" : { "1" : "1" } }
        }
      },
      { "node_is_of_type" : {
          "node" : [ "node" ],
          "type" : { "value" : { "goto_special_order" : "goto_special_order" } }
        }
      },
      { "NOT entity_exists" : {
          "type" : "user",
          "property" : "mail",
          "value" : "[node:field-your-email-address]"
        }
      }
    ],
    "DO" : [
      { "entity_create" : {
          "USING" : {
            "type" : "user",
            "param_name" : "[node:field-your-email-address]",
            "param_mail" : "[node:field-your-email-address]"
          },
          "PROVIDE" : { "entity_created" : { "entity_created" : "Created entity" } }
        }
      },
      { "entity_save" : { "data" : [ "entity-created" ], "immediate" : 1 } }
    ]
  }
}

The second rule assigns the newly created node's author to the created user:

{ "rules_assign_special_goto_author_after_user_created" : {
    "LABEL" : "Assign special goto author after user created",
    "PLUGIN" : "reaction rule",
    "WEIGHT" : "2",
    "REQUIRES" : [ "rules", "commerce" ],
    "ON" : [ "node_insert" ],
    "IF" : [
      { "user_has_role" : {
          "account" : [ "site:current-user" ],
          "roles" : { "value" : { "1" : "1" } }
        }
      },
      { "node_is_of_type" : {
          "node" : [ "node" ],
          "type" : { "value" : { "goto_special_order" : "goto_special_order" } }
        }
      },
      { "entity_exists" : {
          "type" : "user",
          "property" : "mail",
          "value" : "[node:field-your-email-address]"
        }
      }
    ],
    "DO" : [
      { "entity_query" : {
          "USING" : {
            "type" : "user",
            "property" : "mail",
            "value" : [ "node:field-your-email-address" ],
            "limit" : "1"
          },
          "PROVIDE" : { "entity_fetched" : { "entity_fetched" : "Fetched entity" } }
        }
      },
      { "data_set" : { "data" : [ "node:author" ], "value" : [ "entity-fetched:0" ] } },
      { "entity_save" : { "data" : [ "entity-fetched:0" ], "immediate" : 1 } }
    ]
  }
}
2pha’s picture

Title: Error with rules » Error with rules updating node

Changed title to be more descriptive.

pgcadalid’s picture

I was getting a similar error on changing account:mail in "After saving a new user account" event. I have changed the event to "Before saving a user account", and the incidence has finished.

NancyDru’s picture