nektos/act · error
unclosed expression.
Error message
unclosed expression.
What it means
Error "unclosed expression." thrown in nektos/act.
Source
Thrown at pkg/runner/expression.go:456
if exprEnd > -1 {
formatOut += fmt.Sprintf("{%d}", len(results))
results = append(results, strings.TrimSpace(in[exprStart:pos+exprEnd]))
pos += exprEnd + 2
exprStart = -1
} else if strStart > -1 {
pos += strStart + 1
} else {
panic("unclosed expression.")
}View on GitHub (pinned to 4f41128141)
Solutions
- Close the expression with a matching '}}' — every '${{' must be terminated.
- Check for stray or nested '${{' inside the string and escape or remove them.
- Validate the workflow file syntax near the reported location.
When it happens
Trigger: Thrown at pkg/runner/expression.go:456 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of nektos/act@4f41128141 (2026-08-15).
Data as JSON: /api/errors/08f7c92efa58eb4c.
Report an issue: GitHub.