kovidgoyal/kitty · error

invalid %s in video_preview: %s

Error message

invalid %s in video_preview: %s

What it means

The 'duration' key of video_preview failed strconv.ParseFloat — its value is not a valid floating point number (e.g. 'five', '5s', or empty).

Source

Thrown at kittens/choose_files/main.go:332

	err = p.LoadConfig("choose-files.conf", opts.Config, opts.Override)
	if err != nil {
		return nil, err
	}
	ans.KeyboardShortcuts = config.ResolveShortcuts(ans.KeyboardShortcuts)
	parts, err := shlex.Split(ans.Video_preview)
	if err != nil {
		return nil, err
	}
	for _, x := range parts {
		k, v, found := strings.Cut(x, "=")
		if !found {
			return nil, fmt.Errorf("invalid value %s in video_preview", x)
		}
		var i uint64
		switch k {
		case "duration":
			if video_duration, err = strconv.ParseFloat(v, 64); err != nil {
				return nil, fmt.Errorf("invalid %s in video_preview: %s", k, v)
			}
		case "fps":
			if i, err = strconv.ParseUint(v, 10, 0); err != nil {
				return nil, fmt.Errorf("invalid %s in video_preview: %s", k, v)
			}
			video_fps = int(i)
		case "width":
			if i, err = strconv.ParseUint(v, 10, 0); err != nil {
				return nil, fmt.Errorf("invalid %s in video_preview: %s", k, v)
			}
			video_width = int(i)
		default:
			return nil, fmt.Errorf("unrecognized key in video_preview: %s", k)
		}
	}
	return ans, nil
}

View on GitHub (pinned to 6d5d0c4406)

Solutions

  1. Use a plain decimal number: duration=4.5
  2. Strip units — kitty assumes seconds

Example fix

# before
--video-preview 'duration=5s,fps=10'
# after
--video-preview 'duration=5,fps=10'
Defensive patterns

Strategy: validation

Validate before calling

if _, err := strconv.ParseFloat(v, 64); err != nil { /* reject: duration must be a plain number */ }

Prevention

When it happens

Trigger: --video-preview 'duration=abc' or 'duration=' or a value with a unit suffix.

Common situations: Including units ('5s') or locale-specific decimal separators; typos in the number.

Related errors


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