Safeguard
Developer Tools•

Why does my IDE scan disagree with CI, and how do you align them?

IDE, CI and platform scans disagree when versions, databases, config or inputs differ. Align the scanner version, data build, policy and lockfile to match.

Safeguard Security Team
3 min read

Scans disagree when something differs between runs: scanner version, vulnerability data build, configuration, or the input itself, such as a lockfile or working tree. Align those four, record them in every result, and compare on the same commit. Most mismatches are explained by one of them.

The four usual causes

CauseHow it shows up
Scanner versionA newer parser finds packages an older one skipped
Data buildOne run used yesterday's database, the other today's
ConfigurationDifferent severity threshold, exclusions or enabled rules
InputLocal branch has uncommitted changes, or CI installed different versions than the lockfile pins

Each of these is reasonable alone. Together they mean a developer sees a clean IDE, a failing CI check and a platform dashboard with a third answer, and loses trust in all three.

A debugging routine

  1. Pick one commit. Check out exactly that commit on a clean tree.
  2. Compare scanner versions in the IDE extension, CI and platform. Note them.
  3. Compare the data build or database timestamp for each run.
  4. Print the effective configuration for each, including exclusions.
  5. Compare the dependency inventory, not the findings. If inventories differ, the cause is in resolution or parsing. If they match but findings differ, the cause is data or policy.
  6. Fix the lowest layer first: input, then version, then data, then configuration.

How to prevent it

  • Use the same scanner engine across surfaces where you can, so parsing is identical.
  • Distribute scanner version from one source, and publish the supported range.
  • Make lockfiles authoritative. Fail the build if installed versions differ from the lockfile.
  • Share configuration through the repository or organisation defaults, so IDE, CI and platform read the same policy.
  • Expect small timing differences from the data, and design the gate to run in CI and the platform, with the IDE as an early hint.
  • Show scanner version and data build in every output, including the IDE panel.

What is acceptable to differ

The IDE should be fast and approximate. It may skip heavy analyses and use cached data. CI is the authoritative gate. The platform is the system of record and re-evaluates over time, so its findings may include new advisories that appeared after the CI run. Tell developers this, so a later finding on unchanged code is understood as new data, not a bug.

Try it yourself

Click through it at your own pace, or open it full screen. See how a code scan reports findings you can then compare across surfaces.

Safeguard offers extensions for VS Code, JetBrains and Open VSX, a CLI, and a desktop app, which share the same platform. You can try the free scan at https://gold.safeguard.sh/scan.

Quick check

Which result should win?

The CI gate decides merges, and the platform is the record over time. The IDE is an early signal.

What is the quickest comparison to run?

Compare the dependency inventories. Differences there point to parsing or resolution, not to vulnerability data.

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.