Environment:
- SonarQube Server:
2026.4 (Enterprise)- Recently Upgraded issue has only occurred after this upgrade. - Deployment: self-hosted
- CI: Azure DevOps Server (on-prem) - Latest, Classic pipeline
- AZDO SonarQube extension:
8.2.3 (latest) - Scanner:
SonarScanner for .NET 11.2.1 - SonarJS plugin:
13.3.0.43633 - Build agents: self-hosted, mixture of Windows Server
2022and2025, 16GB RAM per VM
Summary:
The JavaScript/TypeScript/CSS analysis [javascript] sensor completes successfully (build passes, analysis is marked green in SonarQube), but it is logging a file parsing issue as an ERROR with an ##[error] annotation rather than a WARN. This means every affected build now shows as having pipeline errors in Azure DevOps, even though nothing has actually failed. In the past this same situation (a file the parser can’t fully handle) surfaced only as a WARN, not a build-level error.
Log output:
INFO: Sensor JavaScript/TypeScript/CSS analysis [javascript]
INFO: Detected os: ...
INFO: Using embedded Node.js runtime.
INFO: Using Node.js executable: 'C:\Users\<user>\.sonar\js\node-runtime\node.exe'.
INFO: Memory configuration: OS (16382 MB), Node.js (4288 MB).
INFO: gRPC analyze-project server listening on 127.0.0.1:56837
INFO: Plugin version: [13.3.0.43633]
##[error]ERROR: Error: Unknown word -->
ERROR: Error: Unknown word -->
##[error]ERROR: at e.parsingError (D:\<agent-path>\.sonarqube\out\.sonar\.sonartmp\bridge-bundle\package\bin\server.cjs:1777:3109)
ERROR: at dJA (D:\<agent-path>\.sonarqube\out\.sonar\.sonartmp\bridge-bundle\package\bin\server.cjs:2188:746)
[... stack trace repeated twice ...]
WARN: Failed to parse file [src/code/<project>/offline_messages/app_offline.htm] at line 60: Unknown word -->
INFO: Found 0 tsconfig.json file(s): []
INFO: 8 source files to be analyzed
Key observation:
The actual root cause is logged correctly further down, as a WARN:
WARN: Failed to parse file [src/code/AmberWebUI/offline_messages/app_offline.htm] at line 60: Unknown word -->
This is an .htm file (not JS/TS/CSS) that the JS parser evidently attempts to touch and can’t fully parse. The sensor handles this gracefully, it doesn’t fail the build, still finds 8 source files to be analyzed, and completes normally. However, before that WARN line appears, the same underlying event is also emitted twice as ERROR (with ##[error] annotations), which is what Azure DevOps picks up and surfaces as pipeline errors on an otherwise successful build.
What we’ve observed:
- The build itself does not fail, SonarQube analysis completes and is reported as passing/green.
- The same parsing situation for non-JS/TS/CSS files has historically only produced a
WARN, not anERROR. - The
ERRORblock appears to be a duplicate/higher-severity echo of the same single parsing event that is separately logged correctly asWARNa few lines later. - This is now happening across all of our AZDO build pipelines, so every affected build shows as containing errors in the Azure DevOps UI, even though the analysis has succeeded.
Questions:
- Is this a known change in how the JS/TS/CSS sensor reports file parsing issues, has the severity of this specific event changed from
WARNtoERRORin a recent plugin version? - Should a non-fatal parsing issue on a file the sensor still successfully skips (analysis completes, build passes) be logged as
ERRORat all, given it doesn’t reflect an actual failure? - Is there a way to configure or exclude this so that non-JS/TS/CSS files (like
.htm) aren’t parsed by this sensor at all, to avoid this false-error noise in our pipelines?
Happy to provide the full debug log and pipeline configuration if this is useful.
This issue currently means that some builds are reporting errors, that never use to be errors but also report as warnings. (But builds are still working)
Thanks