How to duplicate a node into an external database in Drupal 8
This seems similar to Database::setActiveConnection not working as expected?. Perhaps the Node object you've instantiated before switching the connection is still going to hold on to the old db settings as the source to save. 

The DatabaseSwitcher class (found in the above posted question, just under the accepted answer by the original poster) may be an effective way for you to switch the container context in a way that will allow your already instantiated Node object to save in your external DB:

//... mymodule_node_insert

$node = Node::load($id);
$db_switcher = new DatabaseSwitcher();
$db_switcher-&gt;changeToDifferentDb('external');

// save the node in the shared database
// Create node object with attached file.
$sharedNode = Node::create([
    'type'        =&gt; $node-&gt;getType();,
    'title'       =&gt; $node-&gt;getTitle();,
    'body_text'   =&gt; $node-&gt;get('body')-&gt;value,
]);
$sharedNode-&gt;save();

$db_switcher-&gt;changeToDefaultDb(); 


Hope this works for you!