emberjs/ember.js · error · Error
Could not find module ${name} required by: ${referrerName}
Error message
Could not find module ${name} required by: ${referrerName} What it means
The Ember loader's missingModule throws this when internalRequire cannot resolve a module name in its registry and the caller (referrer) is known. It means a `require('some/module')` or inter-module dependency pointed at a module that was never registered with the loader. The referrer is included so you can see which importing module failed.
Source
Thrown at packages/loader/lib/index.js:18
/* eslint-disable no-var */
/* 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
- Verify the module id string matches the file's registered module name exactly (check spelling/casing).
- Ensure the defining file is included in the build/imported before the requiring module runs.
- Run the build and confirm the addon/package providing the module is installed and listed in dependencies.
- Use the referrer in the message to open the importing module and fix the import path.
Example fix
// before
const helper = require('my-app/helpers/format-dat');
// after
const helper = require('my-app/helpers/format-date'); Defensive patterns
Strategy: try-catch
Validate before calling
function isModuleLoaded(name){ try { require(name); return true; } catch(e){ return false; } }
if (!isModuleLoaded('my-app/helpers/format-date')) { console.error('module not registered'); } Type guard
function hasModule(registry, name) { return typeof registry[name] === 'function'; } Try / catch
let mod;
try { mod = require('my-app/helpers/format-date'); }
catch (e) { if (/^Could not find module/.test(e.message)) { mod = fallbackModule; } else { throw e; } } Prevention
- Never hand-write require strings; use the bundler/import system.
- Keep import paths in sync when renaming files (use IDE rename).
- Run the app build in CI to catch unresolvable modules early.
- Install addons as dependencies before importing their modules.
When it happens
Trigger: internalRequire('foo', 'bar') is called, `registry['foo']` is undefined, and a non-empty referrerName is passed. Typical when a module is required before its defining file is loaded or the module id is misspelled.
Common situations: Ember addon or app imports a module that isn't in the build (tree-shaken out, addon not installed, wrong import path); AMD/loader-based environments where a file failed to register; typos in relative import paths after refactors.
Related errors
AI-assisted analysis of emberjs/ember.js@26f97246a8 (2026-09-01).
Data as JSON: /api/errors/f697f32c9a095326.
Report an issue: GitHub.