dagger/dagger · error

get volume privateKey ID: %w

Error message

get volume privateKey ID: %w

What it means

After successfully loading the sshfs volume's private key secret, the SDK calls `privateKey.ID()` to obtain its DAGQL ID for passing to sshfsVolume. This error wraps an ID() failure, which is essentially an internal serialization failure of the loaded Secret object.

Source

Thrown at core/schema/address.go:913

		})
		return inst, err
	}
	if u.Scheme != "sshfs" {
		return inst, fmt.Errorf("unsupported volume address %q: must use sshfs:// or engine-volume://", addr)
	}

	parsed, err := parseSSHFSVolumeAddress(addr)
	if err != nil {
		return inst, err
	}

	privateKey, err := loadAddressSecret(ctx, srv, parsed.PrivateKeyAddr)
	if err != nil {
		return inst, fmt.Errorf("load volume privateKey secret: %w", err)
	}
	privateKeyID, err := privateKey.ID()
	if err != nil {
		return inst, fmt.Errorf("get volume privateKey ID: %w", err)
	}

	argsList := []dagql.NamedInput{
		{Name: "endpoint", Value: dagql.NewString(parsed.Endpoint)},
		{Name: "privateKey", Value: dagql.NewID[*core.Secret](privateKeyID)},
	}
	if parsed.KnownHostsAddr != "" {
		knownHosts, err := loadAddressSecret(ctx, srv, parsed.KnownHostsAddr)
		if err != nil {
			return inst, fmt.Errorf("load volume knownHosts secret: %w", err)
		}
		knownHostsID, err := knownHosts.ID()
		if err != nil {
			return inst, fmt.Errorf("get volume knownHosts ID: %w", err)
		}
		argsList = append(argsList, dagql.NamedInput{
			Name:  "knownHosts",
			Value: dagql.Opt(dagql.NewID[*core.Secret](knownHostsID)),

View on GitHub (pinned to 82ba2681db)

Solutions

  1. Retry the query; transient server state issues may resolve.
  2. Upgrade the Dagger CLI/SDK and engine to matching, current versions.
  3. Report a bug if reproducible — Secret.ID() should not normally fail after a successful load.
  4. Check engine logs around the failure for the underlying cause.
Defensive patterns

Strategy: retry

Validate before calling

if _, err := secret.ID(ctx); err != nil {
	return fmt.Errorf("secret unusable before building volume address: %w", err)
}

Try / catch

inst, err := addr.Volume(ctx)
if err != nil && strings.Contains(err.Error(), "get volume privateKey ID") {
	// transient/internal: retry once, then upgrade SDK/engine and report
}

Prevention

When it happens

Trigger: Calling `Address.volume()` on an sshfs address where the secret loaded but `Secret.ID()` returns an error (rare; typically reflects a corrupt/incomplete secret object from the server).

Common situations: Very rare in practice; usually indicates an SDK/server version mismatch or an internal state problem after secret loading.

Related errors


AI-assisted analysis of dagger/dagger@82ba2681db (2026-09-05). Data as JSON: /api/errors/ad4009cdf5ae0e11. Report an issue: GitHub.