dagger/dagger · error
failed to create field %s: %w
Error message
failed to create field %s: %w
What it means
Wraps a failure from dangTypeToTypeDef when converting a non-function public slot of a Dang class into a TypeDef field during createObjectTypeDef. Fires when the slot's monomorphic type cannot be represented as a core TypeDef (unknown or unsupported type).
Source
Thrown at core/sdk/dang/v1/helpers.go:732
switch x := slotType.(type) {
case *hm.FunctionType:
fnDef, err := createFunction(ctx, srv, classMod, bindingName, x, module.Closure, localTypes)
if err != nil {
return res, fmt.Errorf("failed to create method %s for %s: %w", bindingName, name, err)
}
fnDefID, err := fnDef.ID()
if err != nil {
return res, fmt.Errorf("failed to get function ID for %s: %w", bindingName, err)
}
sels = append(sels, dagql.Selector{
Field: "withFunction",
Args: []dagql.NamedInput{{Name: "function", Value: dagql.NewID[*core.Function](fnDefID)}},
})
default:
fieldDef, err := dangTypeToTypeDef(ctx, srv, slotType, localTypes)
if err != nil {
return res, fmt.Errorf("failed to create field %s: %w", bindingName, err)
}
fieldDefID, err := fieldDef.ID()
if err != nil {
return res, fmt.Errorf("failed to get field type ID for %s: %w", bindingName, err)
}
fieldArgs := []dagql.NamedInput{
{Name: "name", Value: dagql.String(bindingName)},
{Name: "typeDef", Value: dagql.NewID[*core.TypeDef](fieldDefID)},
}
if desc, ok := classMod.GetDocString(bindingName); ok {
fieldArgs = append(fieldArgs, dagql.NamedInput{Name: "description", Value: dagql.String(desc)})
}
sels = append(sels, dagql.Selector{
Field: "withField",
Args: fieldArgs,View on GitHub (pinned to 82ba2681db)
Solutions
- Check the wrapped cause to see which slot type failed conversion.
- Use a supported Dang field type (primitives, known object/enum/list types).
- Make the slot private if it should not appear in the schema.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at core/sdk/dang/v1/helpers.go:732 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/bf40a09252dccaa6.
Report an issue: GitHub.