# WorkflowScript: 12: expecting '}', found 'steps' @ line 12, column 5

- **ID:** `cicd/jenkins-pipeline-syntax-error`
- **Domain:** cicd
- **Category:** build_error
- **Error Code:** `PIPELINE_SYNTAX_ERR`
- **Verification:** ai_generated
- **Fix Rate:** 88%

## Root Cause

Jenkins pipeline script has a syntax error, typically a missing closing brace or incorrect nesting of stages/steps, causing the Groovy parser to fail before execution.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| Jenkins 2.440 | active | — | — |
| Jenkins 2.450 | active | — | — |
| Pipeline: Groovy Plugin 3960.v85a_7c1a_9e2b_1 | active | — | — |

## Workarounds

1. **Use the Jenkins Pipeline Syntax Validator (http://your-jenkins/pipeline-syntax/) to parse the script and get precise error location. Fix the missing brace at line 12 by adding '}' before 'steps'.** (90% success)
   ```
   Use the Jenkins Pipeline Syntax Validator (http://your-jenkins/pipeline-syntax/) to parse the script and get precise error location. Fix the missing brace at line 12 by adding '}' before 'steps'.
   ```
2. **Run `groovy -c yourPipeline.groovy` locally to check syntax before committing; this catches errors early.** (85% success)
   ```
   Run `groovy -c yourPipeline.groovy` locally to check syntax before committing; this catches errors early.
   ```
3. **Simplify the pipeline to isolate the error: comment out sections until the error disappears, then fix the problematic block.** (75% success)
   ```
   Simplify the pipeline to isolate the error: comment out sections until the error disappears, then fix the problematic block.
   ```

## Dead Ends

- **** — Adding random indentation changes without fixing the actual brace mismatch; Groovy is whitespace-insensitive, so indentation doesn't affect syntax. (80% fail)
- **** — Removing the 'steps' block entirely; this removes the functionality and the pipeline won't execute the intended actions. (90% fail)
- **** — Copying a script from a different pipeline without adjusting the structure; the syntax may be valid but the logic breaks the pipeline. (70% fail)
