Two forms on one page break submit I have two forms on a node page (the comment one + a custom form). Ajax is not enabled for both of them but still, when submitting the custom form form_set_error or durpal_set_message are not displayed but displayed when you load a new page (if you submit the form again, if you reload a page or if you change the page). It's like I have a hidden ajax behavior messing the submit up.

function my_module_quote_request_form($form, &amp;$form_state) {
  global $user;
  $account = user_load($user-&gt;uid);

  $user_phone_number = $account-&gt;field_user_address[LANGUAGE_NONE][0]['phone_number'] ? $account-&gt;field_user_address[LANGUAGE_NONE][0]['phone_number'] : '';

  $form = array();

  $form['phone_number'] = array(
    '#type' =&gt; 'textfield',
    '#title' =&gt; t('Phone number'),
    '#default_value' =&gt; $user_phone_number,
    '#size' =&gt; 30,
    '#maxlength' =&gt; 10,
    '#required' =&gt; TRUE,
  );

  $form['actions'] = array('#type' =&gt; 'actions');
  $form['actions']['submit'] = array(
    '#title' =&gt; t('Submit'),
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Request'),

  );
  $form['actions']['cancel'] = array(
    '#title' =&gt; t('Cancel'),
    '#markup' =&gt; l(t('Cancel'), '/market'),
  );

  return $form;
}

function my_module_quote_request_form_validate($form, &amp;$form_state) {
  if (blabla) {
   form_set_error($phone_number, $message);
  }
}


If you trigger blabla, then the message is not displayed but displayed on page reload.

Any idea what it can due to?
I have finally found what was the issue. It's absolutely not related to the fact I have two forms but that I was implementing my theme variable in a node preprocess function.

Errors messages are prepared in upper function so the result is that you alter a variable after it's actually called. The result is the message is displayed on reload.

See here : form_set_error message delayed one page refresh