dagger/dagger · error
decode persisted file blob lazy: %w
Error message
decode persisted file blob lazy: %w
What it means
Wraps json.Unmarshal failure in decodePersistedFileLazy for the blob lazy kind: the stored payload for a lazy blob-backed File does not match persistedFileBlobLazy's schema, so the lazy blob cannot be restored.
Source
Thrown at core/file.go:418
payload, err := lazy.EncodePersisted(ctx, cache)
return persistedFileLazyKindWithReplaced, payload, err
case *FileWithTimestampsLazy:
payload, err := lazy.EncodePersisted(ctx, cache)
return persistedFileLazyKindWithTimestamps, payload, err
case *FileChownLazy:
payload, err := lazy.EncodePersisted(ctx, cache)
return persistedFileLazyKindChown, payload, err
default:
return "", nil, fmt.Errorf("encode persisted file lazy: unsupported lazy type %T", lazy)
}
}
func decodePersistedFileLazy(ctx context.Context, dag *dagql.Server, lazyKind string, payload json.RawMessage) (Lazy[*File], error) {
switch lazyKind {
case persistedFileLazyKindBlob:
var persisted persistedFileBlobLazy
if err := json.Unmarshal(payload, &persisted); err != nil {
return nil, fmt.Errorf("decode persisted file blob lazy: %w", err)
}
return &FileBlobLazy{
LazyState: NewLazyState(),
Filename: persisted.Filename,
Contents: slices.Clone(persisted.Contents),
Permissions: persisted.Permissions,
}, nil
case persistedFileLazyKindDirectoryFile:
var persisted persistedFileSubfileLazy
if err := json.Unmarshal(payload, &persisted); err != nil {
return nil, fmt.Errorf("decode persisted file subfile lazy: %w", err)
}
parent, err := loadPersistedObjectResultByResultID[*Directory](ctx, dag, persisted.ParentResultID, "file subfile parent")
if err != nil {
return nil, err
}
return &FileSubfileLazy{LazyState: NewLazyState(), Parent: parent, Path: persisted.Path}, nil
case persistedFileLazyKindContainerFile:View on GitHub (pinned to 82ba2681db)
Solutions
- Re-run the operation to re-encode the lazy File
- Invalidate the corrupted persisted result
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at core/file.go:418 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/d99da3962b30f3f5.
Report an issue: GitHub.