How to copy/clone menu of a node when clone with Entity Clone module? When cloning a node using Entity Clone module, the menu link are not copied. As menu link item is created and managed on the node form level, there is no reference of the menu link item in the node entity level.
See menu_ui_form_node_form_alter for more details.
Issue #2839833 has a proposal to add entity clone plugin to node entity to handle this special case.

Alternatively, we could use the event. Luckily Entity Clone module dispatches an event before &amp; after clone for the other modules to act. Here is the code for menu copy:

  // mymodule.services.yml

 mymodule.entity_clone.subscriber:
    class: Drupal\mymodule\EventSubscriber\EntityCloneSubscriber
    tags:
      - { name: 'event_subscriber' }


Subscribe to the post clone event:

&lt;?php

namespace Drupal\mymodule\EventSubscriber;

use Drupal\Core\Entity\EntityInterface;
use Drupal\entity_clone\Event\EntityCloneEvent;
use Drupal\entity_clone\Event\EntityCloneEvents;
use Drupal\menu_link_content\Entity\MenuLinkContent;
use Drupal\node\NodeInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * Crates menu item after node clone.
 */
class EntityCloneSubscriber implements EventSubscriberInterface {

  /**
   * Entity post clone handler.
   *
   * @param \Drupal\entity_clone\Event\EntityCloneEvent $event
   *   An event object.
   *
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  public function onPostClone(EntityCloneEvent $event) {
    $entity = $event-&gt;getEntity();

    // Act only on node clone.
    if (!($entity instanceof  NodeInterface)) {
      return;
    }
    $cloned_entity = $event-&gt;getClonedEntity();
    $values = menu_ui_get_menu_link_defaults($entity);

    // Copy menu item, if available.
    if (!empty($values['entity_id'])) {
      $this-&gt;cloneNodeMenuLinkContent($cloned_entity, $values);
    }
  }

  /**
   * Clones menu link content associated with the node.
   *
   * @param \Drupal\Core\Entity\EntityInterface $cloned_entity
   *   Cloned node.
   * @param array $values
   *   An array of menu link content values.
   *
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  protected function cloneNodeMenuLinkContent(EntityInterface $cloned_entity, array $values) {
    $menu_item = MenuLinkContent::load($values['entity_id']);
    $menu_name = $values['menu_name'];

    // Create new menu link content with original value.
    $cloned_menu_item = MenuLinkContent::create([
      'link' =&gt; ['uri' =&gt; 'entity:node/' . $cloned_entity-&gt;id()],
      'langcode' =&gt; $cloned_entity-&gt;language()-&gt;getId(),
    ]);
    $cloned_menu_item-&gt;enabled-&gt;value = $menu_item-&gt;isEnabled() ? 1 : 0;
    $cloned_menu_item-&gt;title-&gt;value = trim($cloned_entity-&gt;getTitle());
    $cloned_menu_item-&gt;description-&gt;value = trim($values['description']);
    $cloned_menu_item-&gt;menu_name-&gt;value = $menu_name;
    $cloned_menu_item-&gt;parent-&gt;value = $values['parent'];
    $cloned_menu_item-&gt;weight-&gt;value = isset($values['weight']) ? $values['weight'] : 0;
    $cloned_menu_item-&gt;save();
  }

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() {
    $events = [];
    $events[EntityCloneEvents::POST_CLONE][] = ['onPostClone', 200];
    return $events;
  }

}