dagger/dagger · error
namespace interface typedef id: %w
Error message
namespace interface typedef id: %w
What it means
Wraps a failure from ResultIDInput while encoding the fully namespaced interface into an ID, before substituting it into the TypeDef via `__withInterfaceTypeDef` (core/module.go). Encoding the updated InterfaceTypeDef result failed.
Source
Thrown at core/module.go:1823
if !sameAttachedResult(updatedFn, fn) {
fnID, err := ResultIDInput(updatedFn)
if err != nil {
return typeDef, fmt.Errorf("namespace interface function id: %w", err)
}
if err := dag.Select(ctx, updatedIface, &updatedIface, dagql.Selector{
Field: "__withFunction",
Args: []dagql.NamedInput{{Name: "function", Value: fnID}},
}); err != nil {
return typeDef, fmt.Errorf("namespace interface function: %w", err)
}
}
}
if sameAttachedResult(updatedIface, iface) {
return typeDef, nil
}
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, nilView on GitHub (pinned to 82ba2681db)
Solutions
- Check the wrapped cause from ResultIDInput
- Regenerate SDK code (`dagger develop`)
- Restart engine / clear cache to drop corrupt results
- Verify CLI and engine versions match
Example fix
// before dagger functions // fails on stale generated SDK // after dagger develop && dagger functions
Defensive patterns
Strategy: validation
Validate before calling
if updatedIface.Self().Name == "" { return errors.New("namespaced interface has empty name") } Type guard
func encodableInterface(i *core.Interface) bool { return i != nil && i.Name != "" } Try / catch
id, err := ResultIDInput(updatedIface); if err != nil { return fmt.Errorf("interface typedef encoding failed: %w", err) } Prevention
- Regenerate module SDK after source changes
- Keep identifiers valid and non-empty
- Clear engine cache after failed codegen runs
When it happens
Trigger: After namespacing, updatedIface differs from iface (sameAttachedResult false) and ResultIDInput(updatedIface) errors.
Common situations: Malformed interface produced by codegen; corrupt cached results; engine version skew.
Related errors
- attach generated code directory: unexpected result %T
- apply changes to workspace root: %w
- namespace interface function id: %w
- failed to get current dag: %w
- failed to add vcs generated file: %w
AI-assisted analysis of dagger/dagger@82ba2681db (2026-09-05).
Data as JSON: /api/errors/1da40afa67a66071.
Report an issue: GitHub.