alibaba/open-code-review · error

--effort: %w

Error message

--effort: %w

What it means

validateReviewOptions in cmd/opencodereview/shared_flags.go wraps any error returned by template.ParseEffort with the --effort prefix. ParseEffort rejects effort levels that are not one of the recognized keywords, so this error means the --effort flag value could not be parsed into a valid effort setting.

Source

Thrown at cmd/opencodereview/shared_flags.go:158

	if opts.maxTools < 0 {
		return fmt.Errorf("--max-tools must be a non-negative integer (0 means use template default)")
	}
	if opts.maxTools > 0 && opts.maxTools < minMaxTools {
		fmt.Fprintf(os.Stderr, "[ocr] --max-tools %d is below minimum %d, using %d\n", opts.maxTools, minMaxTools, minMaxTools)
		opts.maxTools = minMaxTools
	}
	if opts.maxGitProcs < 0 {
		return fmt.Errorf("--max-git-procs must be a non-negative integer (0 means use default 16)")
	}
	if opts.maxTokens < 0 {
		return fmt.Errorf("--max-tokens must be a non-negative integer (0 means use configured or template default)")
	}
	if opts.maxTokensBudget < 0 {
		return fmt.Errorf("--max-tokens-budget must be a non-negative integer (0 means unlimited)")
	}
	if opts.effort != "" {
		if _, err := template.ParseEffort(opts.effort); err != nil {
			return fmt.Errorf("--effort: %w", err)
		}
	}
	return nil
}

func validateScanOptions(opts *scanOptions) error {
	if err := validateAudience(opts.audience); err != nil {
		return err
	}
	normalizedFormat, err := validateOutputFormat(opts.outputFormat)
	if err != nil {
		return err
	}
	opts.outputFormat = normalizedFormat
	if opts.maxTools < 0 {
		return fmt.Errorf("--max-tools must be a non-negative integer (0 means use template default)")
	}
	if opts.maxGitProcs < 0 {

View on GitHub (pinned to 5cf97d0d15)

Solutions

  1. Use a valid effort keyword accepted by template.ParseEffort (e.g. low/medium/high as documented by the tool)
  2. Run with no --effort flag to use the template default
  3. Check the tool's help/docs for the current list of accepted effort values

Example fix

// before
ocr review --effort maximum
// after
ocr review --effort high
Defensive patterns

Strategy: validation

Validate before calling

case "$EFFORT" in ""|low|medium|high) ;; *) echo "invalid effort: $EFFORT" >&2; exit 2;; esac
ocr review --effort "$EFFORT"

Prevention

When it happens

Trigger: Running `ocr review --effort maximum` (or any string ParseEffort does not recognize). The check only runs when --effort is non-empty, so omitting the flag never triggers it.

Common situations: Typos in effort keywords; copying a flag value from a different tool that uses different effort names; documentation drift after the accepted keyword set changed between versions.

Related errors


AI-assisted analysis of alibaba/open-code-review@5cf97d0d15 (2026-09-02). Data as JSON: /api/errors/bf968f331d1bf5ae. Report an issue: GitHub.