dagger/dagger · error
namespace enum type lookup: %w
Error message
namespace enum type lookup: %w
What it means
Wraps a failure from mod.Deps.ModTypeFor while looking up whether an enum type already exists among the module's dependencies, during enum namespacing (core/module.go). This lookup decides whether the enum must be renamed/rewritten; the lookup itself errored.
Source
Thrown at core/module.go:1838
}
updatedIfaceID, err := ResultIDInput(updatedIface)
if err != nil {
return typeDef, fmt.Errorf("namespace interface typedef id: %w", err)
}
updated := typeDef
if err := dag.Select(ctx, updated, &updated, dagql.Selector{
Field: "__withInterfaceTypeDef",
Args: []dagql.NamedInput{{Name: "interfaceTypeDef", Value: updatedIfaceID}},
}); err != nil {
return typeDef, fmt.Errorf("namespace interface typedef: %w", err)
}
return updated, nil
case TypeDefKindEnum:
enum := typeDef.Self().AsEnum.Value
updatedEnum := enum
_, ok, err := mod.Deps.ModTypeFor(ctx, typeDef.Self())
if err != nil {
return typeDef, fmt.Errorf("namespace enum type lookup: %w", err)
}
if ok {
return typeDef, nil
}
if !ok {
targetName := namespaceObject(enum.Self().OriginalName, mod.Name(), mod.OriginalName)
if enum.Self().Name != targetName {
if err := dag.Select(ctx, updatedEnum, &updatedEnum, dagql.Selector{
Field: "__withName",
Args: []dagql.NamedInput{{Name: "name", Value: dagql.String(targetName)}},
}); err != nil {
return typeDef, fmt.Errorf("namespace enum name: %w", err)
}
}
if enum.Self().SourceModuleName != mod.Name() {
if err := dag.Select(ctx, updatedEnum, &updatedEnum, dagql.Selector{
Field: "__withSourceModuleName",
Args: []dagql.NamedInput{{Name: "sourceModuleName", Value: OptSourceModuleName(mod.Name())}},View on GitHub (pinned to 82ba2681db)
Solutions
- Inspect the wrapped cause from ModTypeFor (usually a dep load failure)
- Verify dependency entries in dagger.json point to existing, valid modules
- Run `dagger develop` to refresh dependency SDKs
- Clear engine cache if dep metadata is stale
Example fix
// before: dep path moved "dependencies": ["../removed-dir"] // after "dependencies": ["../renamed-dir"] // then dagger develop
Defensive patterns
Strategy: validation
Validate before calling
for _, dep := range mod.Config.Dependencies { if _, err := os.Stat(filepath.Join(mod.Root, dep)); err != nil { return fmt.Errorf("dependency %q not found: %w", dep, err) } } Try / catch
_, ok, err := mod.Deps.ModTypeFor(ctx, td); if err != nil { return fmt.Errorf("dep type lookup failed: %w", err) } Prevention
- Verify all dagger.json dependency paths exist and are valid modules
- Run `dagger develop` after changing dependencies
- Avoid circular dependency declarations
When it happens
Trigger: Module evaluation reaches TypeDefKindEnum and Deps.ModTypeFor(ctx, typeDef.Self()) returns an error instead of a found/not-found result.
Common situations: Broken or missing dependency modules (bad dagger.json, moved directories); circular or unloaded dependency state; corrupt cached dep metadata.
Related errors
- namespace enum name: %w
- get changeset diff directory: %w
- merge before directories: %w
- attach generated code directory: unexpected result %T
- failed to get dagql server: %w
AI-assisted analysis of dagger/dagger@82ba2681db (2026-09-05).
Data as JSON: /api/errors/5ac1f3b18092fb4b.
Report an issue: GitHub.