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

  1. Inspect the wrapped cause from ModTypeFor (usually a dep load failure)
  2. Verify dependency entries in dagger.json point to existing, valid modules
  3. Run `dagger develop` to refresh dependency SDKs
  4. 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

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


AI-assisted analysis of dagger/dagger@82ba2681db (2026-09-05). Data as JSON: /api/errors/5ac1f3b18092fb4b. Report an issue: GitHub.