dagger/dagger · error

patch constructor enum defaults: %w

Error message

patch constructor enum defaults: %w

What it means

During the enum default patching pass, applying the updated constructor to the object typedef via its __withConstructor field failed. This wraps the internal dag.Select error; the constructor's enum defaults were already rewritten and this is the final attachment step.

Source

Thrown at core/module.go:2115

			}); err != nil {
				return fmt.Errorf("patch object function enum defaults: %w", err)
			}
		}
		if objRes.Self().Constructor.Valid {
			updatedFn, err := patchFunctionEnumDefaults(objRes.Self().Constructor.Value)
			if err != nil {
				return err
			}
			if !sameAttachedResult(updatedFn, objRes.Self().Constructor.Value) {
				fnID, err := ResultIDInput(updatedFn)
				if err != nil {
					return fmt.Errorf("patched constructor id: %w", err)
				}
				if err := dag.Select(ctx, updatedObj, &updatedObj, dagql.Selector{
					Field: "__withConstructor",
					Args:  []dagql.NamedInput{{Name: "function", Value: fnID}},
				}); err != nil {
					return fmt.Errorf("patch constructor enum defaults: %w", err)
				}
			}
		}
		if !sameAttachedResult(updatedObj, objRes) {
			objID, err := ResultIDInput(updatedObj)
			if err != nil {
				return fmt.Errorf("patched object typedef id: %w", err)
			}
			if err := dag.Select(ctx, obj, &mod.ObjectDefs[i], dagql.Selector{
				Field: "__withObjectTypeDef",
				Args:  []dagql.NamedInput{{Name: "objectTypeDef", Value: objID}},
			}); err != nil {
				return fmt.Errorf("patch object typedef enum defaults: %w", err)
			}
		}
	}
	for i, iface := range mod.InterfaceDefs {
		ifaceRes := iface.Self().AsInterface.Value

View on GitHub (pinned to 82ba2681db)

Solutions

  1. Retry the dagger command
  2. Restart the engine (dagger engine restart / kill stale session)
  3. Align CLI and engine versions
  4. Check the inner error for the dagql-level cause
Defensive patterns

Strategy: retry

Validate before calling

# engine health probe before module load
dagger core version || (dagger engine restart) 2>/dev/null; dagger functions

Try / catch

for i in 1 2 3; do dagger develop && break || dagger engine restart; done

Prevention

When it happens

Trigger: Module load with a valid patched constructor ID, but the dag.Select call executing __withConstructor fails (GraphQL/engine error).

Common situations: Engine crash or restart during module load; schema drift between CLI and engine; invalid/dangling function ID.

Related errors


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