nats-io/nats-server · error

too many slashes: %s

Error message

too many slashes: %s

What it means

getRange supports at most one '/' step modifier per cron field segment; a segment containing multiple slashes is rejected. The step syntax is 'range/step' where range may be '*', a number, or a 'low-high' range.

Source

Thrown at server/cron.go:218

	}

	switch len(rangeAndStep) {
	case 1:
		step = 1
	case 2:
		step, err = mustParseInt(rangeAndStep[1])
		if err != nil {
			return 0, err
		}
		// Special handling: "N/step" means "N-max/step".
		if singleDigit {
			end = r.max
		}
		if step > 1 {
			extra = 0
		}
	default:
		return 0, fmt.Errorf("too many slashes: %s", expr)
	}

	if start < r.min {
		return 0, fmt.Errorf("beginning of range (%d) below minimum (%d): %s", start, r.min, expr)
	}
	if end > r.max {
		return 0, fmt.Errorf("end of range (%d) above maximum (%d): %s", end, r.max, expr)
	}
	if start > end {
		return 0, fmt.Errorf("beginning of range (%d) beyond end of range (%d): %s", start, end, expr)
	}
	if step == 0 {
		return 0, fmt.Errorf("step of range should be a positive number: %s", expr)
	}
	return getBits(start, end, step) | extra, nil
}

// parseIntOrName returns the (possibly-named) integer contained in expr.

View on GitHub (pinned to 3a66a489d2)

Solutions

  1. Use a single '/' per segment: "*/2"
  2. Combine distinct stepped values with commas: "0-10/2,20-30/3"
  3. Put the start into the range part instead of a second slash: "5-59/10"

Example fix

// before
 expr := "*/2/3"
// after
 expr := "*/2"
Defensive patterns

Strategy: validation

Validate before calling

if strings.Count(seg, "/") > 1 {
    return fmt.Errorf("at most one '/' step allowed in %q", seg)
}

Prevention

When it happens

Trigger: A cron field containing more than one '/', e.g. minutes "*/2/3" or "1-10/2/2", parsed via parseCron -> getField -> getRange.

Common situations: Trying to compose 'every 2 starting at X' and 'every 3' in one segment instead of a comma list.

Related errors


AI-assisted analysis of nats-io/nats-server@3a66a489d2 (2026-09-02). Data as JSON: /api/errors/7363ffa7fc952d67. Report an issue: GitHub.