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
- Check the exact module name against the registry/vendor bundle contents.
- Load the bundle that registers the module before calling require().
- Confirm the package providing the module is installed at the expected version.
- 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
- Load vendor/bundle files before any custom require calls.
- Pin and verify dependency versions in lockfile.
- After upgrades, grep for removed module ids.
- Prefer standard imports over loader-level require.
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.