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 its

View on GitHub (pinned to 82ba2681db)

Solutions

  1. Inspect the wrapped overlay error for the offending path in the dependency changeset
  2. Ensure the dependency generator only writes within the dependency's directory
  3. 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.