8 – Custom migration source plugin not enabled in source site error

I’m trying to write a custom source plugin for a d7-d8 migration. I want to extend the DrupalnodePluginmigratesourced7 Node.php plugin.

I’m getting the following error when I try to run the migration from the UI:

Migration my_node_page did not meet the requirements. The module
my_xtra is not enabled in the source site. source_module:
my_xtra.

When I run drush ms I get a different error

No database connection configured for source plugin variable

The database connection key is specified in the group yml and works for other migrations which don’t use the custom source plugin.

Here’s my yml file

id: my_node_page
label: Node Basic Page
audit: true
migration_tags:
  - Drupal 7
  - Content
migration_group: my_group
source:
  plugin: my_xtra_node
  node_type: 'page'
process:

Here’s my custom plugin.

    <?php
    
    namespace Drupalmy_extraPluginmigratesource;
    
    use DrupalnodePluginmigratesourced7Node;
    
    /**
     * Drupal 7 node source from database.
     *
     * @MigrateSource(
     *   id = "my_xtra_node",
     *   source_provider = "node",
     *   source_module = "my_xtra",
     *   
     * )
     */
    class NodeXtra extends Node {
    
    
      /**
       * {@inheritdoc}
      */
      public function query() {
        // Select node in its last revision.
        $query = $this->select('node_revision', 'nr')
          ->fields('n', (
            'nid',
            'type',
            'language',
            'status',
            'created',
            'changed',
            'comment',
            'promote',
            'sticky',
            'tnid',
            'translate',
          ))
          ->fields('nr', (
            'vid',
            'title',
            'log',
            'timestamp',
          ));
        $query->addField('n', 'uid', 'node_uid');
        $query->addField('nr', 'uid', 'revision_uid');
        $query->innerJoin('node', 'n', static::JOIN);
    
        // If the content_translation module is enabled, get the source langcode
        // to fill the content_translation_source field.
        if ($this->moduleHandler->moduleExists('content_translation')) {
          $query->leftJoin('node', 'nt', 'n.tnid = nt.nid');
          $query->addField('nt', 'language', 'source_langcode');
        }
        $this->handleTranslations($query);
    
        if (isset($this->configuration('node_type'))) {
          $query->condition('n.type', $this->configuration('node_type'));
        }
    
        return $query;
      } 
}

Thanks!