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

  1. Check for a nil module source before requesting persisted-object encoding
  2. Ensure the module source was loaded before persisting
  3. 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.