dagger/dagger · error
resolve session secret %q: no available client binding: %w
Error message
resolve session secret %q: no available client binding: %w
What it means
All candidate client bindings for the session secret failed but at least one was retryable, so their per-client errors were joined and wrapped here in Plaintext. Means no live client could currently provide the secret's plaintext, though re-binding may help.
Source
Thrown at core/secret.go:177
var errs error
for _, candidate := range candidates {
resolved, ok := candidate.Value.(*Secret)
if !ok {
return nil, fmt.Errorf("resolve session secret %q: bound value for client %q is %T", secret.Handle, candidate.ClientID, candidate.Value)
}
plaintext, retry, err := resolved.plaintextFromSessionResourceCandidate(ctx)
if err == nil {
return plaintext, nil
}
if !retry {
return nil, err
}
errs = errors.Join(errs, fmt.Errorf("client %q: %w", candidate.ClientID, err))
}
if errs != nil {
return nil, fmt.Errorf("resolve session secret %q: no available client binding: %w", secret.Handle, errs)
}
return nil, fmt.Errorf("resolve session secret %q: no available client binding", secret.Handle)
}
func (secret *Secret) plaintext(ctx context.Context) ([]byte, error) {
if secret == nil {
return nil, nil
}
if secret.URIVal == "" {
return append([]byte(nil), secret.PlaintextVal...), nil
}
if secret.SourceClientID == "" {
return nil, fmt.Errorf("secret %q: missing source client ID", secret.URIVal)
}
query, err := CurrentQuery(ctx)
if err != nil {
return nil, err
}View on GitHub (pinned to 82ba2681db)
Solutions
- Inspect the joined per-client errors for the common failure mode
- Re-set or re-attach the secret from a live client
- Retry the operation; retryable candidate failures may succeed later
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at core/secret.go:177 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/7871a9de4aa46c78.
Report an issue: GitHub.