Calling form validation function from new button I've attached a Process button on the node edit form. But on clicking it - in it's validation function form_set_error is not working.

In my form_alter I've this code:

$form['buttons']['process'] = array(
            '#type' =&gt; 'submit',
            '#value' =&gt; 'Process',
            '#validate' =&gt; array('disavow_process_validate'),
        );

        $form['#validate'][] = 'disavow_validate';


So on pressing "Process" button validator function disavow_process_validate is called with $form and &amp;$form_state. But form_set_error and assigning values in the $form_state are not working as working in the normal validation function disavow_validate

What could be the problem?
See below example which works perfectly...

function drup_custom_form_alter(&amp;$form, &amp;$form_state, $form_id) {
  if ($form_id == "page_node_form" &amp;&amp; arg(2) == "edit") {
    $form['buttons']['process'] = array(
            '#type' =&gt; 'submit',
            '#value' =&gt; 'Process',
            '#validate' =&gt; array('disavow_process_validate'),
    );
  }
}

function disavow_process_validate($form, &amp;$form_state) {
  form_set_error('title', 'Something wrong here !');
}


Please update what you are trying to do inside validate function..