dagger/dagger · error
expected %s to be %T, but got %T (%s)
Error message
expected %s to be %T, but got %T (%s)
What it means
Validation in checkDaggerObjectIface: the named DaggerObject type's underlying type is not a *types.Interface. Fires when DaggerObject is declared as a struct or other non-interface named type, so it cannot serve as the required embeddable interface.
Source
Thrown at cmd/codegen/generator/go/templates/modules.go:514
}
ps.constructor = fn
return true
}
func (ps *parseState) checkDaggerObjectIface(obj types.Object) (bool, error) {
if obj.Name() != daggerObjectIfaceName {
return false, nil
}
objType := dealias(obj.Type())
named, isNamed := objType.(*types.Named)
if !isNamed {
return false, fmt.Errorf("expected %s to be a named interface, but got %T (%s)", daggerObjectIfaceName, obj.Type(), obj.Type().String())
}
iface, isIface := named.Underlying().(*types.Interface)
if !isIface {
return false, fmt.Errorf("expected %s to be %T, but got %T (%s)", daggerObjectIfaceName, &types.Interface{}, named.Underlying(), named.Underlying().String())
}
ps.daggerObjectIfaceType = iface
return true, nil
}
// fillObjectFunctionCases recursively fills out the `cases` map with entries for object name -> `case` statement blocks
// for each function in that object
func (ps *parseState) fillObjectFunctionCases(type_ types.Type, cases map[string][]Code) error {
var objName string
switch x := type_.(type) {
case *types.Pointer:
return ps.fillObjectFunctionCases(x.Elem(), cases)
case *types.Named:
objName = x.Obj().Name()
default:
return nil
}View on GitHub (pinned to 82ba2681db)
Solutions
- Ensure DaggerObject is used as an interface, not a struct
- Remove/fix custom redefinitions of DaggerObject in module code
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cmd/codegen/generator/go/templates/modules.go:514 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of dagger/dagger@82ba2681db (2026-09-05).
Data as JSON: /api/errors/2fbc66ac2992e98c.
Report an issue: GitHub.