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
- Retry the query; transient server state issues may resolve.
- Upgrade the Dagger CLI/SDK and engine to matching, current versions.
- Report a bug if reproducible — Secret.ID() should not normally fail after a successful load.
- 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
- Keep Dagger CLI, SDK, and engine versions aligned.
- Pre-serialize secret IDs to catch issues early.
- Retry transient failures.
- Report persistent ID() failures upstream.
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
- get volume knownHosts ID: %w
- decode persisted container withMountedSecret lazy payload: %
- failed to get dagql server: %w
- enum %s has no members
- update function arg %q type def: %w
AI-assisted analysis of dagger/dagger@82ba2681db (2026-09-05).
Data as JSON: /api/errors/ad4009cdf5ae0e11.
Report an issue: GitHub.