dagger/dagger · error
stage local dependency %q changes: %w
Error message
stage local dependency %q changes: %w
What it means
In the local-dependency generation flow: overlaying a dependency's staged `changes` changeset onto the accumulated staged context failed while folding overlays in declaration order, so the deterministic workspace changeset cannot be built.
Source
Thrown at core/schema/modulesource.go:3391
depGens[i] = depGen{staging: depDeps, changes: depChanges}
return nil
})
}
if err := jobs.Run(ctx); err != nil {
return res, err
}
// Fold the overlays in declaration order, off the parallel path, so the
// resulting changeset is deterministic regardless of completion order.
// Sibling closures share transitive dependencies, but their changesets
// carry identical content for them, so overlaying converges.
stagedCtx := origCtx
for i, depPath := range depPaths {
if stagedCtx, err = overlay(stagedCtx, depGens[i].staging); err != nil {
return res, fmt.Errorf("stage local dependency %q closure: %w", depPath, err)
}
if stagedCtx, err = overlay(stagedCtx, depGens[i].changes); err != nil {
return res, fmt.Errorf("stage local dependency %q changes: %w", depPath, err)
}
}
origID, err := origCtx.ID()
if err != nil {
return res, err
}
if err := dag.Select(ctx, stagedCtx, &res, dagql.Selector{
Field: "changes",
Args: []dagql.NamedInput{{Name: "from", Value: dagql.NewID[*core.Directory](origID)}},
}); err != nil {
return res, fmt.Errorf("compute staged dependency changeset: %w", err)
}
// Deliberately workspace-root-measured, unlike generatedContextChangeset:
// this changeset is intermediate staging data, consumed by
// Workspace.withChanges / __withGeneratedLocalDependencies, which overlay
// at the workspace root — it is never handed to a client to apply at itsView on GitHub (pinned to 82ba2681db)
Solutions
- Inspect the wrapped overlay error for the offending path in the dependency changeset
- Ensure the dependency generator only writes within the dependency's directory
- Fix the generator output and re-run generation
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at core/schema/modulesource.go:3391 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/e882494dec0bb302.
Report an issue: GitHub.