{"record":{"id":"4db7d8d82c36986f","repo":"emberjs/ember.js","slug":"attempted-to-resolve-name-which-was-expected-4db7d8","errorCode":null,"errorMessage":"Attempted to resolve `${name}`, which was expected to be a component, but nothing was found.","messagePattern":"Attempted to resolve `(.+?)`, which was expected to be a component, but nothing was found\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/@glimmer/runtime/lib/component/resolve.ts","lineNumber":24,"sourceCode":"  Owner,\n  ResolutionTimeConstants,\n} from '@glimmer/interfaces';\nimport { expect } from '@glimmer/debug-util/lib/platform-utils';\n\nexport function resolveComponent(\n  resolver: Nullable<ClassicResolver>,\n  constants: ResolutionTimeConstants,\n  name: string,\n  owner: Owner | null\n): Nullable<ComponentDefinition> {\n  let definition =\n    resolver?.lookupComponent?.(\n      name,\n      expect(owner, 'BUG: expected owner when looking up component')\n    ) ?? null;\n\n  if (DEBUG && !definition) {\n    throw new Error(\n      `Attempted to resolve \\`${name}\\`, which was expected to be a component, but nothing was found.`\n    );\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- @fixme\n  return constants.resolvedComponent(definition!, name);\n}\n","sourceCodeStart":6,"sourceCodeEnd":32,"githubUrl":"https://github.com/emberjs/ember.js/blob/26f97246a8bf2e28edf26ac3093da2e86c04ffc5/packages/@glimmer/runtime/lib/component/resolve.ts#L6-L32","documentation":"resolveComponent looks up a component definition via the resolver (resolver.lookupComponent). When the resolver returns null/undefined, Glimmer cannot render the component, so in DEBUG builds it throws this error naming the unresolved component. In production (non-DEBUG) the throw is skipped and a null definition is passed on, which typically fails later or silently.","triggerScenarios":"Dynamic component resolution (e.g. {{component \"name\"}} or curried component resolution) with a name that the configured resolver cannot find: the component file doesn't exist, isn't exported with the expected name, or the resolver/registry wasn't configured for that name.","commonSituations":"Typo in a dynamically resolved component name; component not registered in the owner's registry; missing resolver in a standalone @glimmer/runtime setup; component file added but build pipeline not re-run; kolba/embedded Glimmer apps where lookupComponent is a no-op or partial.","solutions":["Check the component name in the error message against an actually existing component file/module and fix the name or path","Register the component in the owner/resolver registry so lookupComponent can find it","Verify the resolver passed to the runtime implements lookupComponent and that owner is provided","Rebuild the app so newly added components are included in the resolver manifest"],"exampleFix":"// before\n{{component 'blog-post'}}  // blog-post.js does not exist\n// after\n{{component 'post'}}  // or create components/blog-post.js","handlingStrategy":"validation","validationCode":"const definition = resolver?.lookupComponent?.(name, owner);\nif (!definition) throw new Error(`Component \"${name}\" is not registered with the resolver`);","typeGuard":"function componentResolvable(resolver: unknown, name: string, owner: unknown): boolean {\n  return typeof (resolver as any)?.lookupComponent === 'function'\n    && !!resolver.lookupComponent(name, owner);\n}","tryCatchPattern":null,"preventionTips":["Always register dynamically referenced components in the resolver/owner registry","Add a startup check that verifies all dynamically used component names resolve","Enable DEBUG builds in development so resolution failures throw early with the component name","Avoid string-based component names where a direct import is possible"],"tags":["glimmer","resolver","component-resolution"],"backgroundTag":"component-not-found","analyzedSha":"26f97246a8bf2e28edf26ac3093da2e86c04ffc5","analyzedAt":"2026-09-01T05:01:28.182Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}