emberjs/ember.js · error · Error

Could not find module ${name}

Error message

Could not find module ${name}

What it means

Top-level variant of missingModule: internalRequire could not find the requested module and no referrer was supplied. The loader keeps a registry of loaded modules; if the name is absent from it, this error is thrown with just the module name.

Source

Thrown at packages/loader/lib/index.js:20

/* eslint-disable-next-line no-unused-vars */
var define, require;

(function () {
  if (typeof globalThis.define === 'function' && typeof globalThis.require === 'function') {
    define = globalThis.define;
    require = globalThis.require;

    return;
  }

  var registry = Object.create(null);
  var seen = Object.create(null);

  function missingModule(name, referrerName) {
    if (referrerName) {
      throw new Error('Could not find module ' + name + ' required by: ' + referrerName);
    } else {
      throw new Error('Could not find module ' + name);
    }
  }

  function internalRequire(_name, referrerName) {
    var name = _name;
    var mod = registry[name];

    if (!mod) {
      name = name + '/index';
      mod = registry[name];
    }

    var exports = seen[name];

    if (exports !== undefined) {
      return exports;
    }

View on GitHub (pinned to 26f97246a8)

Solutions

  1. Check the exact module name against the registry/vendor bundle contents.
  2. Load the bundle that registers the module before calling require().
  3. Confirm the package providing the module is installed at the expected version.
  4. If upgrading, check changelogs for renamed/removed module ids.

Example fix

// before
const RSVP = require('rsvp'); // not registered in this build
// after
import RSVP from 'rsvp'; // let the bundler resolve and register it
Defensive patterns

Strategy: try-catch

Validate before calling

const REQUIRED = ['ember','rsvp'];
REQUIRED.forEach(n => { try { require(n); } catch { console.error('missing module: ' + n); } });

Type guard

function isRegistered(registry, name) { return Object.prototype.hasOwnProperty.call(registry, name); }

Try / catch

try { dep = require('rsvp'); }
catch (e) { if (/^Could not find module/.test(e.message)) { loadVendorBundle(); dep = require('rsvp'); } else { throw e; } }

Prevention

When it happens

Trigger: internalRequire(name) is called where registry[name] is undefined and referrerName is falsy — i.e., a root-level require of an unregistered module.

Common situations: Requiring an Ember module like 'ember' or an addon module in a test/JS entry point before the vendor bundle has registered it; requiring a module that was removed in a dependency upgrade.

Related errors


AI-assisted analysis of emberjs/ember.js@26f97246a8 (2026-09-01). Data as JSON: /api/errors/8ecf9952fbc8d4f2. Report an issue: GitHub.