Override default node form submit handler I retrieve a node form and replace it's submit callback like this:

$node = entity_create('node', array('type' =&gt; 'my_type', 'title' =&gt; ''));
$node = entity_metadata_wrapper('node', $node);
$node = my_node_handler($node, 'some_operation') // It's an object factory
  -&gt;ekran()
  -&gt;getEntity() // It returns a DrupalEntityWrapper
  -&gt;value() // Node's stdClass from wrapper;

form_load_include($form_state, 'inc', 'node', 'node.pages');
$form_state = array();
$form_state['build_info']['args'] = array($node);
$form = drupal_build_form('my_type_node_form', $form_state);

// Remove save, preview, delete, ....
remove_default_actions_from_form($form);
$form['actions']['send'] = array(
  '#type' =&gt; 'button',
  '#value' =&gt; t('My Button'),
  '#submit' =&gt; array('my_callback'),
  '#executes_submit_callback' =&gt; FALSE,
  '#name' =&gt; 'name_here',
);


But Form API does not care what my submit callback is or even, #executes_submit_callback, It always sends the node form to node_form_submit and the node is saved.

Even changing the callback like this:

$form['actions']['send'] = array(
  '#type' =&gt; 'button',
  '#value' =&gt; t('My Button'),
  '#submit' =&gt; array('some_non_existing_function_hahaha_hohoho'),
  '#executes_submit_callback' =&gt; FALSE,
  '#name' =&gt; 'name_here',
);


Will not produce an error. What's wrong here? I used entity_form(args...) for retrieving the form and this thing happened, And changed it to drupal_build_form, Still the same thing.

Also along all these, I have added:

  $form['#submit'] = 'die';


Which wont happen (not even an error about die not being callable from call_user_func...);
Wow, The magic was using form alter along side the menu callback which created and handled the node like this:

function my_module_form_node_form_alter(&amp;$f, &amp;$fs) {
  $f['actions']['my_action'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; t('My Button'),
    '#submit' =&gt; array('the_submit_func_here'),
  );

dpm($f);
}


Notice it's not a button type but is of type "submit". I have no idea how Form API handles submits, I thought I was having issues because of FORM_ID_submit but now I have no idea what is happening?