temporalio/temporal · error
invalid duration: %q
Error message
invalid duration: %q
What it means
Error "invalid duration: %q" thrown in temporalio/temporal.
Source
Thrown at common/nexus/nexusrpc/api.go:259
func validateLinkType(value string) error {
if len(value) == 0 {
return errors.New("link type is empty")
}
for _, c := range value {
if (c < 'a' || c > 'z') && (c < 'A' || c > 'Z') && (c < '0' || c > '9') && c != '_' && c != '.' && c != '/' {
return errors.New("link type contains invalid char (valid chars: alphanumeric, '_', '.', '/')")
}
}
return nil
}
var durationRegexp = regexp.MustCompile(`^(\d+(?:\.\d+)?)(ms|s|m)$`)
func ParseDuration(value string) (time.Duration, error) {
m := durationRegexp.FindStringSubmatch(value)
if len(m) == 0 {
return 0, fmt.Errorf("invalid duration: %q", value)
}
v, err := strconv.ParseFloat(m[1], 64)
if err != nil {
return 0, err
}
switch m[2] {
case "ms":
return time.Millisecond * time.Duration(v), nil
case "s":
return time.Millisecond * time.Duration(v*1e3), nil
case "m":
return time.Millisecond * time.Duration(v*1e3*60), nil
}
// nolint:forbidigo // code is unreachable due to regex validation
panic("unreachable")
}
View on GitHub (pinned to bde624efd1)
When it happens
Trigger: Thrown at common/nexus/nexusrpc/api.go:259 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of temporalio/temporal@bde624efd1 (2026-09-01).
Data as JSON: /api/errors/49e04544890d294b.
Report an issue: GitHub.