dagger/dagger · error
encode persisted module source: nil module source
Error message
encode persisted module source: nil module source
What it means
ModuleSource.EncodePersistedObject was called on a nil *ModuleSource receiver. The guard prevents serializing a missing module source into the persisted-object cache; callers should not attempt to encode an absent source.
Source
Thrown at core/modulesource.go:786
}
var _ RuntimeTarget = persistedModuleSourceLazyRuntimeTarget{}
func (sdk persistedModuleSourceLazyRuntimeTarget) TargetRuntime(ctx context.Context) (string, error) {
loaded, err := sdk.sdk.load(ctx)
if err != nil {
return "", err
}
targetSDK, ok := loaded.AsRuntimeTarget()
if !ok {
return "", fmt.Errorf("persisted module source sdk does not implement runtime target")
}
return targetSDK.TargetRuntime(ctx)
}
func (src *ModuleSource) EncodePersistedObject(ctx context.Context, cache dagql.PersistedObjectCache) (dagql.PersistedObjectEncoding, error) {
if src == nil {
return dagql.PersistedObjectEncoding{}, fmt.Errorf("encode persisted module source: nil module source")
}
payload := persistedModuleSourcePayload{
ConfigExists: src.ConfigExists,
ConfigFilename: src.ConfigFilename,
ModuleName: src.ModuleName,
ModuleOriginalName: src.ModuleOriginalName,
EngineVersion: src.EngineVersion,
CodegenConfig: src.CodegenConfig,
ModuleConfigUserFields: src.ModuleConfigUserFields,
DisableDefaultFunctionCaching: src.DisableDefaultFunctionCaching,
SDK: src.SDK,
IncludePaths: slices.Clone(src.IncludePaths),
RebasedIncludePaths: slices.Clone(src.RebasedIncludePaths),
ConfigDependencies: slices.Clone(src.ConfigDependencies),
ConfigBlueprint: src.ConfigBlueprint,
ConfigToolchains: slices.Clone(src.ConfigToolchains),
UserDefaults: src.UserDefaults,
ConfigClients: slices.Clone(src.ConfigClients),View on GitHub (pinned to 82ba2681db)
Solutions
- Check for a nil module source before requesting persisted-object encoding
- Ensure the module source was loaded before persisting
- Report as an internal bug if reached via normal CLI usage
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/modulesource.go:786 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/975c1d02dc1a86b5.
Report an issue: GitHub.