Custom form submit handler is called, but node is not saved There are many questions about a custom form submit handler not being called, but in my case, the handler is being called; however, the entity is not being saved.  Specifically, I have a custom submit handler on a content type; when I press the button to call the handler, nothing is saved in the database:

function MYMODULE_form_node_CONTENTTYPE_form_alter(&amp;$form, FormStateInterface $form_state, $form_id) {

  $form['actions']['submit_publish'] = array(
    '#type' =&gt; 'submit',
    '#weight' =&gt; 999,
    '#button-type' =&gt; 'danger',
    '#value' =&gt; t('Submit for approval'),
    '#submit' =&gt; array('MYMODULE_draft2submit_callback'),
  );
}

function MYMODULE_draft2submit_callback(array &amp;$form, FormStateInterface &amp;$form_state) {
  $form_state-&gt;setValue('moderation_state', 'submitted');
}


So I thought since the node is not being saved, maybe I have to do it manually.  Following this article, I did this:

function MYMODULE_draft2submit_callback(array &amp;$form, FormStateInterface &amp;$form_state) {
  $form_state-&gt;setValue('moderation_state', 'submitted');
  $node = $form_state-&gt;getFormObject()-&gt;getEntity();
  $node-&gt;save();
}


However, in this case, the node is saved, but none of the submitted values (the node body, for example) are saved; everything added by the user is ignored, as is the setValue() in my callback.

I only want to set the moderation_state in my custom form submit handler; in all other ways, I want my custom submit handler to be the same as the normal submit handler (i.e., I want it to save the node).  What am I doing wrong?
As pointed out by @Ismini, the entity has to be saved in the submit handler.  The way to do this is, as pointed out by @4k4, to copy the submit handlers for the new button from the original submit handler.  The corrected code is shown below.

function MYMODULE_form_node_CONTENTTYPE_form_alter(&amp;$form, FormStateInterface $form_state, $form_id) {

  $form['actions']['submit_publish'] = array(
    '#type' =&gt; 'submit',
    '#weight' =&gt; 999,
    '#button-type' =&gt; 'danger',
    '#value' =&gt; t('Submit for approval'),
    '#submit' =&gt; array_merge($form['actions']['submit']['#submit'], array('MYMODULE_draft2submit_callback')),
  );
}

function MYMODULE_draft2submit_callback(array &amp;$form, FormStateInterface &amp;$form_state) {
  // Getting the entity.
  $entity = $form_state-&gt;getFormObject()-&gt;getEntity();
  // Changing the moderation state.
  $entity-&gt;set('moderation_state', 'submitted');
  // Saving the entity.
  $entity-&gt;save();
}