# SonarJS 13.3.0: “Skipping analysis result for unknown file path” logged for **every** file on a 100% analysis-cache hit
**Category:** Get help → Report a bug (SonarQube Cloud)
## Environment
- **Platform:** SonarQube Cloud (SonarCloud)
- **Analyzer:** SonarJS plugin **13.3.0.43633** (embedded Node.js runtime; “gRPC analyze-project server”)
- **Scanner:** `SonarSource/sonarqube-scan-action@v8.2.1`
- **CI:** GitHub Actions, `ubuntu-latest`
- **Project layout:** monorepo; the scan runs with **`projectBaseDir` set to a subdirectory** (`frontend/`). `sonar.sources=src` and `sonar.tests=src` (same directory, disambiguated by `sonar.test.inclusions`). ~1,440 `.ts/.tsx` files; a single `tsconfig.json` at the base dir. Analysis cache enabled (default).
## Summary
On any analysis where the SonarJS analysis cache is a **100% hit** — i.e. no `.ts/.tsx` file changed since the cached analysis, so the log shows `Hit the cache for N out of N` / `Miss the cache for 0 out of N` — the analyzer emits one:
```
WARN Skipping analysis result for unknown file path:
```
for **every one of the N files** (both source and test files). When **at least one** file is a cache miss (`Miss the cache for ≥1 …`), **zero** such warnings appear and the same files map fine.
Analysis still **succeeds**; issues/coverage/measures and the quality gate are unaffected. So it’s cosmetic — but ~1,440 `WARN` lines per run buries genuine warnings and alarms every reviewer who opens the log.
## Steps to reproduce
1. A SonarCloud project analyzing a TypeScript codebase via `sonarqube-scan-action`, analysis cache enabled (default), with `projectBaseDir` pointed at a subdirectory.
2. Run an analysis that **changes ≥1 `.ts` file** → it completes cleanly: log shows `Miss the cache for 1 out of N: FILE_CHANGED` and **0** “unknown file path” warnings.
3. Run a subsequent analysis (branch/PR) that changes **no `.ts/.tsx` file** (e.g. a change to only `sonar-project.properties` or another non-TS file), so the cache is a **100% hit**.
4. Observe: `Hit the cache for N out of N` / `Miss the cache for 0 out of N`, preceded/accompanied by **N × `WARN Skipping analysis result for unknown file path: `**.
## Expected vs. actual
- **Expected:** on a 100% cache hit, cached results attach to their `InputFile`s (exactly as they do when there is ≥1 miss); no “unknown file path” warnings.
- **Actual:** every file’s cached result is skipped as an “unknown file path.”
## Evidence — two real runs, identical analyzer/scanner/config
| Run | `.ts` files changed | Cache result | “unknown file path” WARNs |
|—|—|—|—|
| A | 1 | `Hit 1438 / 1439`, `Miss 1 (FILE_CHANGED)` | **0** |
| B | 0 (properties-only change) | `Hit 1440 / 1440`, `Miss 0` | **1,440** |
Log excerpt (Run B, paths genericized):
```
INFO Base dir: /home/runner/work///frontend
INFO 1456 files indexed
INFO Sensor JavaScript/TypeScript/CSS analysis [javascript]
INFO gRPC analyze-project server listening on 127.0.0.1:NNNNN
INFO Plugin version: [13.3.0.43633]
INFO Found 1 tsconfig.json file(s): [/home/runner/work///frontend/tsconfig.json]
WARN Skipping analysis result for unknown file path: /home/runner/work///frontend/src/utils/storage.ts
WARN Skipping analysis result for unknown file path: /home/runner/work///frontend/src/utils/storage.test.ts
… (×1,440, source and test files) …
INFO JasminAstConsumer done
INFO Hit the cache for 1440 out of 1440
INFO Miss the cache for 0 out of 1440
INFO Sensor JavaScript/TypeScript/CSS analysis [javascript] (done) | time=68259ms
```
## Workaround — none found (scanner-side)
We tried **`sonar.analysisCache.enabled=false`** in `sonar-project.properties`. On SonarCloud it did **not** disable the SonarJS cache: the very next analysis still logged `Hit the cache for 1440 out of 1440` / `Miss the cache for 0 out of 1440` and still emitted all **1,440** “unknown file path” warnings (quality gate still PASSED). So that property does not govern this cache, and we found no client-side mitigation — this appears to require a fix in the analyzer’s all-cache-hit result-mapping path.
## Possibly relevant (please confirm whether these are contributing factors)
- `sonar.sources` and `sonar.tests` both point at the same directory (`src`), disambiguated only by `sonar.test.inclusions`.
- `projectBaseDir` is a **subdirectory** of the checkout, so analyzer paths are `…///frontend/src/…` while the base dir is `…///frontend`.
- The warning fires only on the **all-cache-hit** code path — it looks like that path may skip the `InputFile` registration that the ≥1-miss path performs, so cached results can’t be mapped back.