{"record":{"id":"08f7c92efa58eb4c","repo":"nektos/act","slug":"unclosed-expression","errorCode":null,"errorMessage":"unclosed expression.","messagePattern":"unclosed expression\\.","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/runner/expression.go","lineNumber":456,"sourceCode":"if exprEnd > -1 {\n\tformatOut += fmt.Sprintf(\"{%d}\", len(results))\n\tresults = append(results, strings.TrimSpace(in[exprStart:pos+exprEnd]))\n\tpos += exprEnd + 2\n\texprStart = -1\n} else if strStart > -1 {\n\tpos += strStart + 1\n} else {\n\tpanic(\"unclosed expression.\")\n}","sourceCodeStart":438,"sourceCodeEnd":474,"githubUrl":"https://github.com/nektos/act/blob/4f411281417e88660bea1c1a1749aa71ae0bd60f/pkg/runner/expression.go#L438-L474","documentation":"Error \"unclosed expression.\" thrown in nektos/act.","triggerScenarios":"Thrown at pkg/runner/expression.go:456 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4f411281417e88660bea1c1a1749aa71ae0bd60f","analyzedAt":"2026-08-15T09:19:46.307Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}