why am i getting a Drupal\Component\Plugin\Exception\PluginNotFoundException: when the plugin does exist? I wrote a custom source plugin and put it in migd8_node_blog/src/Plugin/migrate/source/Node.php
with
&lt;?php
 
/**
 * @file
 * Contains \Drupal\migd8_node_blog\Plugin\migrate\source\Node.
 */
 
namespace Drupal\migd8_node_blog\Plugin\migrate\source;
 
use Drupal\migrate\Row;
use Drupal\node\Plugin\migrate\source\d7\Node as D7Node;

    /**
     * Custom node source including url aliases.
     *
     * @MigrateSource(
     *   id = &quot;migd8_node_blog_node&quot;
     * )
     */
    
    class Node extends D7Node {

but i keep getting this error when i run drush mim migd8_node_blog Drupal\Component\Plugin\Exception\PluginNotFoundException: The &quot;migd8_node_blog_node&quot; plugin does not exist.
even after flushing the cache and reinstalling the module.
after flushing the cache and reinstalling the module

Check that the module is indeed installed at /admin/modules, if it's not, it's due to a migrate tools bug. Perhaps you deleted the part
dependencies:
  enforced:
    module:
      - migd8_node_blog

that you have in your other question, which fixes the reinstall bug if you have it before you install the module.
But if you installed it without the above code, you'll have to run this code once/one time only, and it will allow you to install again as this code removes the stuck configuration.
  $module_path = DRUPAL_ROOT . base_path() . drupal_get_path('module', 'migd8_node_blog') . '/config/install';

  $configs = array();
  $files = file_scan_directory($module_path, '/migrate_plus/');
  if ($files) {
    foreach ($files as $file) {
      $configs[] = $file-&gt;name;
    }
    // Delete each config using configFactory.
    foreach ($configs as $config_name) {
     \Drupal::configFactory()-&gt;getEditable($config_name)-&gt;delete();
    }

    return TRUE;
  }


If the modue is indeed installed, then the issue is due to you trying to assign migd8_node_blog_node as a plugin under the wrong key.
Since this is a source plugin and should be used only be used under source: and not/never under process: or any other key. See my answer.