dagger/dagger · error
resolve interface implementation raw id: nil
Error message
resolve interface implementation raw id: nil
What it means
CollectContent on InterfaceType: the value's ID() succeeded but returned a nil *call.ID, so there is no reference to load an implementation from. A degenerate value that claims to be IDable but carries no ID.
Source
Thrown at core/interface.go:199
loadedImpl := &loadedIfaceImpl{
val: objVal,
valType: modType,
}
return loadedImpl, nil
}
func (iface *InterfaceType) CollectContent(ctx context.Context, value dagql.AnyResult, content *CollectedContent) error {
if value == nil {
return content.CollectJSONable(nil)
}
id, err := value.ID()
if err != nil {
return fmt.Errorf("resolve interface implementation raw id: %w", err)
}
if id == nil {
return fmt.Errorf("resolve interface implementation raw id: nil")
}
loadedImpl, err := iface.loadImpl(ctx, id)
if err != nil {
return fmt.Errorf("load interface implementation: %w", err)
}
return loadedImpl.valType.CollectContent(ctx, loadedImpl.val, content)
}
func (iface *InterfaceType) ConvertToSDKInput(ctx context.Context, value dagql.Typed) (any, error) {
if value == nil {
return nil, nil
}
idable, ok := value.(dagql.IDable)
if !ok {
return nil, fmt.Errorf("unexpected interface value type for conversion to sdk input %T", value)
}View on GitHub (pinned to 82ba2681db)
Solutions
- Collect from a value whose ID is actually populated
- Rebuild the result through a real dagql selection so it has a call ID
- Treat nil-ID values as unsupported inputs earlier in the pipeline
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at core/interface.go:199 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/ab060a30fcdc42e7.
Report an issue: GitHub.