kovidgoyal/kitty · error

No secret backend specified for: %s

Error message

No secret backend specified for: %s

What it means

resolve_secret requires secret values to carry a backend prefix (backend:value). If the value has no separator, no backend can be determined and this error names the offending key (password, etc.).

Source

Thrown at kittens/ssh/config.go:42

var _ = fmt.Print

func resolve_secret(key, val string) (string, error) {
	v := strings.TrimSpace(val)
	if v == "" {
		return "", nil
	}
	if b, s, ok := strings.Cut(v, ":"); ok {
		b = strings.ToLower(strings.TrimSpace(b))
		s = strings.TrimSpace(s)
		switch b {
		case "text":
			return s, nil
		default:
			return "", fmt.Errorf("Unsupported secret backend %s for %s. Supported backends: text", b, key)
		}
	}
	return "", fmt.Errorf("No secret backend specified for: %s", key)
}

func resolve_secrets(c *Config, only_syntax bool) error {
	_ = only_syntax // this will be useful when using backends that require user interaction
	if r, err := resolve_secret("password", c.Password); err != nil {
		return err
	} else {
		c.Password = r
	}
	if r, err := resolve_secret("totp_secret", c.Totp_secret); err != nil {
		return err
	} else {
		c.Totp_secret = r
	}
	return nil
}

type EnvInstruction struct {

View on GitHub (pinned to 6d5d0c4406)

Solutions

  1. Prefix the value with the backend: password: text:mypass
  2. Check every secret-typed key in the config (password, passphrase, etc.) for the prefix

Example fix

// before
password: "mypass"
// after
password: "text:mypass"
Defensive patterns

Strategy: validation

Validate before calling

if !strings.Contains(value, ":") { /* reject: missing backend prefix */ }

Type guard

func hasBackendPrefix(v string) bool { return strings.Contains(v, ":") }

Prevention

When it happens

Trigger: Setting password: mypass without the text: prefix in the ssh kitten config.

Common situations: Migrating from older configs or other ssh wrappers that accepted bare passwords.

Related errors


AI-assisted analysis of kovidgoyal/kitty@6d5d0c4406 (2026-08-27). Data as JSON: /api/errors/247f9b1b18659d30. Report an issue: GitHub.