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

  1. Inspect the joined per-client errors for the common failure mode
  2. Re-set or re-attach the secret from a live client
  3. 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.