argoproj/argo-workflows · error

unable to parse %s as a duration: %w

Error message

unable to parse %s as a duration: %w

What it means

ParseStringToDuration could not interpret the string either as a bare integer (seconds) or as a Go duration (e.g. 30s, 5m). Used for fields like deleteDelayDuration, it means the supplied duration string has bad syntax or unknown units.

Source

Thrown at pkg/apis/workflow/v1alpha1/utils.go:17

package v1alpha1

import (
	"fmt"
	"strconv"
	"time"
)

func ParseStringToDuration(durationString string) (time.Duration, error) {
	var duration time.Duration
	// If no units are attached, treat as seconds
	if val, err := strconv.Atoi(durationString); err == nil {
		duration = time.Duration(val) * time.Second
	} else if parsed, err := time.ParseDuration(durationString); err == nil {
		duration = parsed
	} else {
		return 0, fmt.Errorf("unable to parse %s as a duration: %w", durationString, err)
	}
	return duration, nil
}

View on GitHub (pinned to 35bff19146)

Solutions

  1. Use a plain number (interpreted as seconds) or a valid Go duration like 90s, 5m, 1h
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/apis/workflow/v1alpha1/utils.go:17 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of argoproj/argo-workflows@35bff19146 (2026-09-03). Data as JSON: /api/errors/325527c0d39e26c2. Report an issue: GitHub.