crowdsecurity/crowdsec · error

invalid max_failure_duration in dsn: %w

Error message

invalid max_failure_duration in dsn: %w

What it means

Returned by ConfigureByDSN when the 'max_failure_duration' query parameter of a loki:// DSN is not a valid Go duration string. Wraps time.ParseDuration for the raw parameter value supplied in the DSN.

Source

Thrown at pkg/acquisition/modules/loki/config.go:179

		if l.Config.DelayFor < 0*time.Second || l.Config.DelayFor > 5*time.Second {
			return errors.New("delay_for should be a value between 1s and 5s")
		}
	} else {
		l.Config.DelayFor = 0 * time.Second
	}

	if s := params.Get("since"); s != "" {
		l.Config.Since, err = time.ParseDuration(s)
		if err != nil {
			return fmt.Errorf("invalid since in dsn: %w", err)
		}
	}

	if maxFailureDuration := params.Get("max_failure_duration"); maxFailureDuration != "" {
		duration, err := time.ParseDuration(maxFailureDuration)
		if err != nil {
			return fmt.Errorf("invalid max_failure_duration in dsn: %w", err)
		}

		l.Config.MaxFailureDuration = duration
	} else {
		l.Config.MaxFailureDuration = 5 * time.Second // for OneShot mode it doesn't make sense to have longer duration
	}

	if limit := params.Get("limit"); limit != "" {
		limit, err := strconv.Atoi(limit)
		if err != nil {
			return fmt.Errorf("invalid limit in dsn: %w", err)
		}

		l.Config.Limit = limit
	} else {
		l.Config.Limit = 5000 // max limit allowed by loki
	}

View on GitHub (pinned to 909b515798)

Solutions

  1. Use a valid duration, e.g. max_failure_duration=10m
  2. Omit the parameter to use the default
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/acquisition/modules/loki/config.go:179 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of crowdsecurity/crowdsec@909b515798 (2026-09-06). Data as JSON: /api/errors/1f73bf3a2c7432b8. Report an issue: GitHub.