Reached the maximum allowed lines limt

Bit of background:

  • Using SonarCloud enterprise, so should be good for 1M LOC.
  • 24 c# (mostly) solutions. All for older products. No CI/CD pipeline.
  • Code scanning is done with scripts in github actions.
  • SonarCloud Billing and Usage shows 934185 LOC used.
  • The solution I’m having problems with shows 51,780 LOC on the largest long lived branch.
  • In github, I have a failed action merging a PR into the long lived branch, with the following errors:
    • in the github action: curl: (22) The requested URL returned error: 404
    • in SonarCloud, ti’s telling me “Current LOC usage is: 882405. LOC count in this analysis: 265216.”
  • The PR in github has just a handful of changes in one file.
  • The PR in SonarCloud shows 6 new lines

So, why does SonarCloud think my LOC is increasing by 256K when the PR only has 6 new lines? And how do I troubleshoot this?

Thanks,

Ray

Hi @rjalbert

Welcome to the Community!

Your branch shows 51,780 LOC, but the PR analysis is reporting 265,216 LOC for the same project which is about 5× more.

The “6 new lines” figure is the new code scope for quality gate evaluation only, it has no bearing on LOC counting. For billing, SonarQube Cloud always uses the full project size from whichever analysis (branch or PR) has the larger LOC.

You asked why the PR analysis is seeing 5× more code than the branch. This almost always means the scanner’s scope differs between your branch and PR workflows. With 24 C# solutions in one repo, common causes are:

  1. Missing or different sonar.sources. If your branch workflow explicitly points to just the relevant solution directory, but the PR workflow runs from the repo root without that restriction, the scanner will sweep up code from other solutions or the whole repo.

  2. Generated/vendor files not excluded. obj/, bin/, restored NuGet packages, or T4-generated .cs files can add substantial LOC if not covered by sonar.exclusions.

  3. Working directory difference. Check whether both workflows invoke the scanner from the same directory.

On the curl: (22) 404 error

This is probably a separate issue from the LOC message in SonarQube Cloud, it’s the scanner failing to reach a specific endpoint. Share the full scanner log output so we can see the exact URL returning 404; it may be a secondary symptom of the analysis being rejected, or an independent configuration problem.

To diagnose further, please share:

  1. Your GitHub Actions workflow files for both branch and PR analysis (or confirm they’re the same file with conditional steps)
  2. The full scanner output from the failing PR run (redact information as necessary)

You can also do a quick self-check, open SonarQube Cloud’s Project > Code view on the PR analysis, the file tree will immediately show whether unexpected directories (other solutions, bin/, etc.) are inflating the count.

Best regards,

Stevan

To clarify, there are 24 solutions, but each is in its own github repo.

I expect I’m doing the appropriate exclusions. I hadn’t thought of this before, the code analysis doesn’t happen on the source code, but dlls in the solution, right? And most of the solutions use NuGet packages and even reference dlls in the solution.

Here’s workflow file:

# This workflow will build a .NET project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net

on:
  push:
    branches: 
        - 'release*'
  pull_request:
    types: [opened, synchronize, reopened, converted_to_draft, ready_for_review]
env:
  SOLUTION: MyProject
  # TEST_SOLUTION: ConfigurationTests

jobs:
  build_run_unit_tests:

    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v2
      
      - name: Setup MSBuild
        uses: microsoft/setup-msbuild@v1

      - name: Setup NuGet
        uses: NuGet/setup-nuget@v2

      - name: Setup VSTest
        uses: darenm/Setup-VSTest@v1

      - name: Navigate to Workspace
        run: cd $GITHUB_WORKSPACE

      - name: Restore Packages
        run: nuget restore ${{ env.SOLUTION }}.sln

      - name: Build Solution
        run: |
          msbuild.exe ${{ env.SOLUTION }}.sln /p:platform="Any CPU" /p:configuration="Debug"
          
#      - name: Run Tests
#        run: vstest.console.exe ${{ env.TEST_SOLUTION }}\bin\Debug\${{ env.TEST_SOLUTION }}.dll

  build_code_scan:
    runs-on: windows-latest
    steps:
      - name: Set up JDK 17
        uses: actions/setup-java@v4
        with:
          java-version: 17
          distribution: 'zulu' # Alternative distribution options are available.
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0  # Shallow clones should be disabled for a better relevancy of analysis
          
      - name: Setup MSBuild
        uses: microsoft/setup-msbuild@v1
        
      - name: Setup NuGet
        uses: NuGet/setup-nuget@v2

      - name: Navigate to Workspace
        run: cd $GITHUB_WORKSPACE

      - name: Restore Packages      
        run: nuget restore ${{ env.SOLUTION }}.sln

      - name: Cache SonarQube Cloud packages
        uses: actions/cache@v4
        with:
          path: ~\sonar\cache
          key: ${{ runner.os }}-sonar
          restore-keys: ${{ runner.os }}-sonar
      
      - name: Cache SonarQube Cloud scanner
        id: cache-sonar-scanner
        uses: actions/cache@v4
        with:
          path: ${{ runner.temp }}\scanner
          key: ${{ runner.os }}-sonar-scanner
          restore-keys: ${{ runner.os }}-sonar-scanner
      
      - name: Install SonarQube Cloud scanner
        if: steps.cache-sonar-scanner.outputs.cache-hit != 'true'
        shell: powershell
        run: |
          New-Item -Path ${{ runner.temp }}\scanner -ItemType Directory
          dotnet tool update dotnet-sonarscanner --tool-path ${{ runner.temp }}\scanner
      
      - name: Build and analyze
        env:
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
        shell: powershell
        run: |
          ${{ runner.temp }}\scanner\dotnet-sonarscanner begin /k:"MyCompany-Software_${{ env.SOLUTION }}" /o:"mycompany-software" /d:sonar.token="${{ secrets.SONAR_TOKEN }}"
          msbuild.exe ${{ env.SOLUTION }}.sln /p:platform="Any CPU" /p:configuration="Release"
          ${{ runner.temp }}\scanner\dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}"
                # Check the Quality Gate status.
      
      - name: SonarQube Quality Gate check
        id: sonarqube-quality-gate-check
        uses: sonarsource/sonarqube-quality-gate-action@master
        # uses: sonarsource/sonarqube-quality-gate-action@${{ github.sha }} #master
        with:
          pollingTimeoutSec: 120
          scanMetadataReportFile: .sonarqube/out/.sonar/report-task.txt
        env:
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
          SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} #OPTIONAL

      # Optionally you can use the output from the Quality Gate in another step.
      # The possible outputs of the `quality-gate-status` variable are `PASSED`, `WARN` or `FAILED`.
      #- name: "Example show SonarQube Quality Gate Status value"
      #  run: echo "The Quality Gate status is ${{ steps.sonarqube-quality-gate-check.outputs.quality-gate-status }}"

And here’s a redacted scanner output:

SonarCloud plugins:
  - Text Code Quality and Security 2.46.0.11866 (textenterprise)
  - IaC Code Quality and Security 2.12.0.21417 (iac)
Project server settings:
  - sonar.abap.file.suffixes=.abap,.ab4,.flow,.asprog
  - sonar.apex.file.suffixes=.cls,.trigger
  - sonar.autoscan.enabled=false
  - sonar.azureresourcemanager.file.suffixes=.bicep
  - sonar.branch.longLivedBranches.regex=release\d+[.]\d+
  - sonar.c.file.suffixes=.c,.h
  - sonar.cpp.file.suffixes=.cc,.cpp,.cxx,.c++,.hh,.hpp,.hxx,.h++,.ipp,.ixx,.mxx,.cppm,.ccm,.cxxm,.c++m
  - sonar.cs.file.suffixes=.cs,.razor
  - sonar.css.file.suffixes=.css,.less,.scss,.sass
  - sonar.dart.file.suffixes=.dart
  - sonar.docker.file.patterns=*.dockerfile,Dockerfile,dockerfile
  - sonar.flex.file.suffixes=as
  - sonar.go.file.suffixes=.go
  - sonar.gosu.file.suffixes=gs,gsx,gsp
  - sonar.groovy.file.patterns=*Jenkinsfile
  - sonar.groovy.file.suffixes=groovy,gvy,gy,gsh
  - sonar.html.file.suffixes=.html,.xhtml,.cshtml,.vbhtml,.aspx,.ascx,.rhtml,.erb,.shtm,.shtml,.cmp,.twig,.htm
  - sonar.ipynb.file.suffixes=ipynb
  - sonar.java.file.suffixes=.java,.jav
  - sonar.java.jvmframeworkconfig.file.patterns=**/src/main/resources/**/*app*.properties,**/src/main/resources/**/*app*.yaml,**/src/main/resources/**/*app*.yml
  - sonar.javascript.css.additional.file.suffixes=.vue,.html,.htm,.xhtml
  - sonar.javascript.file.suffixes=.js,.jsx,.cjs,.mjs,.vue
  - sonar.javascript.html.file.suffixes=.html,.htm,.xhtml
  - sonar.javascript.yaml.file.suffixes=.yml,.yaml
  - sonar.jcl.file.suffixes=.jcl
  - sonar.json.file.suffixes=.json
  - sonar.jsp.file.suffixes=.jsp,.jspf,.jspx
  - sonar.kotlin.file.suffixes=.kt,.kts
  - sonar.objc.file.suffixes=.m
  - sonar.php.file.suffixes=php,php3,php4,php5,phtml,inc
  - sonar.pli.file.suffixes=.pli
  - sonar.plsql.file.suffixes=sql,tab,pkb
  - sonar.postgres.file.suffixes=pgsql,psql
  - sonar.powershell.file.suffixes=ps1,psm1,psd1
  - sonar.python.file.suffixes=py
  - sonar.rpg.file.suffixes=.rpg,.rpgle,.sqlrpgle,.RPG,.RPGLE,.SQLRPGLE
  - sonar.ruby.file.suffixes=.rb
  - sonar.rust.file.suffixes=.rs
  - sonar.scala.file.suffixes=.scala
  - sonar.secrets.excluded.file.suffixes=.adoc,.md,.mdx,.dist,.html,.example,.sample,.template
  - sonar.shell.file.suffixes=.sh,.bash
  - sonar.swift.file.suffixes=.swift
  - sonar.terraform.file.suffixes=.tf
  - sonar.tsql.file.suffixes=.tsql
  - sonar.typescript.file.suffixes=.ts,.tsx,.cts,.mts
  - sonar.vb.file.suffixes=.bas,.frm,.ctl
  - sonar.vbnet.file.suffixes=.vb
  - sonar.xml.file.suffixes=.xml,.xsd,.xsl,.config
  - sonar.yaml.file.suffixes=.yaml,.yml
Project scanner properties:
  - sonar.host.url=https://sonarcloud.io
  - sonar.modules=A0D5F10F-D060-449F-84A1-80F1E952F889,D611CE45-2E62-4D12-91A8-6073CBCEE462,C09EEC96-BCE4-4575-9CDE-F4C2F5FC3DF8,00A51B72-9330-4CD9-85E3-54792F854F12,632606B2-5B1E-478D-9575-1B55E93DD45A,44361DB0-E361-48D5-B9FF-5033FA8C4932,2150A98B-D4BE-49B9-B9A0-66BE37CD55F3,C12E7679-D578-4E07-8505-6F3E194FEB25,FD6268CB-AF5D-42CE-ADEA-50A32C8D4403,519697BD-B9D8-4211-88D7-0F1EC5869F54,5873F346-AF88-4679-A35F-26E7AD35EC96,B097B5A9-C9C3-4530-A5FC-EEC4E108C4DC,6BFDC428-B46C-4090-A4C7-12C0653A798B,F13C1EDF-8D0B-465A-BE2C-364BD64410AB
  - sonar.organization=MyCompany
  - sonar.projectBaseDir=D:\a\MySolution\MySolution
  - sonar.projectKey=MyCompany_MySolution
  - sonar.pullrequest.cache.basepath=D:\a\MySolution\MySolution
  - sonar.scanner.app=ScannerMSBuild
  - sonar.scanner.appVersion=11.2.1
  - sonar.scanner.bootstrapStartTime=1784134849000
  - sonar.sources=D:\a\MySolution\MySolution\References\Redacted.SmsServer.dll.config,D:\a\MySolution\MySolution\ReportsUpdate\app.config,D:\a\MySolution\MySolution\.github\workflows\BuildAction.yml,D:\a\MySolution\MySolution\Setup64\deploy\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\Setup64\deploy\MySolution.DatabaseAdmin.dll.config,D:\a\MySolution\MySolution\Setup64\deploy\MySolution.dll.config,D:\a\MySolution\MySolution\Setup64\deploy\MySolution.Service.exe.config,D:\a\MySolution\MySolution\Setup64\deploy\Redacted.SmsServer.dll.config,D:\a\MySolution\MySolution\Setup64\deploy\nlog.config,D:\a\MySolution\MySolution\Setup64\deploy\ServerConfig.exe.config,D:\a\MySolution\MySolution\Setup64\deploy\OtherSystem7_0\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\Setup64\deploy\OtherSystem7_0\Redacted....
  - sonar.tests=
  - sonar.token=******
  - sonar.visualstudio.enable=false
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:C09EEC96-BCE4-4575-9CDE-F4C2F5FC3DF8
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\10
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\10\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\10\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:C09EEC96-BCE4-4575-9CDE-F4C2F5FC3DF8
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\MySolution.PSRunner
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:C09EEC96-BCE4-4575-9CDE-F4C2F5FC3DF8
  - sonar.projectName=MySolution.PSRunner
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\MySolution.PSRunner\App.config,D:\a\MySolution\MySolution\MySolution.PSRunner\nlog.config,D:\a\MySolution\MySolution\MySolution.PSRunner\obj\MySolution.PSRunner.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\MySolution.PSRunner\obj\project.assets.json,D:\a\MySolution\MySolution\MySolution.PSRunner\profiles\sample.config,D:\a\MySolution\MySolution\MySolution.PSRunner\profiles\test.config,D:\a\MySolution\MySolution\MySolution.PSRunner\profiles\tt.config,D:\a\MySolution\MySolution\MySolution.PSRunner\bin\Release\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\MySolution.PSRunner\bin\Release\MySolution.DatabaseAdmin.dll.config,D:\a\MySolution\MySolution\MySolution.PSRunner\bin\Release\MySolution.dll.config,D:\a\Am...
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod2
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:44361DB0-E361-48D5-B9FF-5033FA8C4932
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\13
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\13\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\13\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:44361DB0-E361-48D5-B9FF-5033FA8C4932
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\MySolution.MsTests
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:44361DB0-E361-48D5-B9FF-5033FA8C4932
  - sonar.projectName=MySolution.MsTests
  - sonar.sourceEncoding=utf-8
  - sonar.sources=
  - sonar.tests=D:\a\MySolution\MySolution\MySolution.MsTests\app.config,D:\a\MySolution\MySolution\MySolution.MsTests\packages.config,D:\a\MySolution\MySolution\MySolution.MsTests\bin\Release\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\MySolution.MsTests\bin\Release\MySolution.DatabaseAdmin.dll.config,D:\a\MySolution\MySolution\MySolution.MsTests\bin\Release\MySolution.dll.config,D:\a\MySolution\MySolution\MySolution.MsTests\bin\Release\MySolution.MsTests.dll.config,D:\a\MySolution\MySolution\MySolution.MsTests\bin\Release\Redacted.SmsServer.dll.config,D:\a\MySolution\MySolution\MySolution.MsTests\UnitTest1.cs,D:\a\MySolution\MySolution\MySolution.MsTests\Properties\AssemblyInfo.cs
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod5
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:6BFDC428-B46C-4090-A4C7-12C0653A798B
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\8
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\8\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\8\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:6BFDC428-B46C-4090-A4C7-12C0653A798B
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\MySolution.App
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:6BFDC428-B46C-4090-A4C7-12C0653A798B
  - sonar.projectName=MySolution.App
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\MySolution.App\App.config,D:\a\MySolution\MySolution\MySolution.App\nlog.config,D:\a\MySolution\MySolution\MySolution.App\packages.config,D:\a\MySolution\MySolution\MySolution.App\obj\MySolution.App.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\MySolution.App\obj\project.assets.json,D:\a\MySolution\MySolution\MySolution.App\bin\Release\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\MySolution.App\bin\Release\Redacted.OtherSystemConnection71.dll.config,D:\a\MySolution\MySolution\MySolution.App\bin\Release\MySolution.App.exe.config,D:\a\MySolution\MySolution\MySolution.App\bin\Release\MySolution.DatabaseAdmin.dll.config,D:\a\MySolution\MySolution\MySolution.App\bin\Release\MySolution.dll.config,D:\a\Redacted.I...
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod12
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:A0D5F10F-D060-449F-84A1-80F1E952F889
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\0
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\0\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\0\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:A0D5F10F-D060-449F-84A1-80F1E952F889
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\MySolution.Version
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:A0D5F10F-D060-449F-84A1-80F1E952F889
  - sonar.projectName=MySolution.Version
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\MySolution.Version\CommonVersion.cs,D:\a\MySolution\MySolution\MySolution.Version\Properties\AssemblyInfo.cs,D:\a\MySolution\MySolution\MySolution.Version\NXT.snk,D:\a\MySolution\MySolution\MySolution.Version\obj\MySolution.Version.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\MySolution.Version\obj\project.assets.json
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod0
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:B097B5A9-C9C3-4530-A5FC-EEC4E108C4DC
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\7
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\7\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\7\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:B097B5A9-C9C3-4530-A5FC-EEC4E108C4DC
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\MySolution.Service
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:B097B5A9-C9C3-4530-A5FC-EEC4E108C4DC
  - sonar.projectName=MySolution.Service
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\MySolution.Service\MySolution.Service.exe.config,D:\a\MySolution\MySolution\MySolution.Service\app.config,D:\a\MySolution\MySolution\MySolution.Service\nlog.config,D:\a\MySolution\MySolution\MySolution.Service\obj\MySolution.Service.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\MySolution.Service\obj\project.assets.json,D:\a\MySolution\MySolution\MySolution.Service\bin\Release\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\MySolution.Service\bin\Release\MySolution.DatabaseAdmin.dll.config,D:\a\MySolution\MySolution\MySolution.Service\bin\Release\MySolution.dll.config,D:\a\MySolution\MySolution\MySolution.Service\bin\Release\MySolution.Service.exe.config,D:\a\MySolution\MySolution\MySolution.Ser...
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod11
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:C12E7679-D578-4E07-8505-6F3E194FEB25
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\3
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\3\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\3\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:C12E7679-D578-4E07-8505-6F3E194FEB25
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\MySolution.DatabaseAdmin
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:C12E7679-D578-4E07-8505-6F3E194FEB25
  - sonar.projectName=MySolution.DatabaseAdmin
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\MySolution.DatabaseAdmin\app.config,D:\a\MySolution\MySolution\MySolution.DatabaseAdmin\obj\MySolution.DatabaseAdmin.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\MySolution.DatabaseAdmin\obj\project.assets.json,D:\a\MySolution\MySolution\MySolution.DatabaseAdmin\Scripts\Initialize.sql,D:\a\MySolution\MySolution\MySolution.DatabaseAdmin\Scripts\Script.sql,D:\a\MySolution\MySolution\MySolution.DatabaseAdmin\bin\Release\MySolution.DatabaseAdmin.dll.config,D:\a\MySolution\MySolution\MySolution.DatabaseAdmin\Scripts\Release_3_8\120.sql,D:\a\MySolution\MySolution\MySolution.DatabaseAdmin\Scripts\Release_3_8\121.sql,D:\a\MySolution\MySolution\MySolution.DatabaseAdmin\Scripts\Release_3_8\122.sql,D:\a\MySolution\MySolution\MySolution.Data...
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod7
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:FD6268CB-AF5D-42CE-ADEA-50A32C8D4403
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\4
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\4\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\4\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:FD6268CB-AF5D-42CE-ADEA-50A32C8D4403
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\MySolution
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:FD6268CB-AF5D-42CE-ADEA-50A32C8D4403
  - sonar.projectName=MySolution
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\MySolution\app.config,D:\a\MySolution\MySolution\MySolution\obj\MySolution.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\MySolution\obj\project.assets.json,D:\a\MySolution\MySolution\MySolution\bin\Release\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\MySolution\bin\Release\MySolution.DatabaseAdmin.dll.config,D:\a\MySolution\MySolution\MySolution\bin\Release\MySolution.dll.config,D:\a\MySolution\MySolution\MySolution\bin\Release\Redacted.SmsServer.dll.config,D:\a\MySolution\MySolution\MySolution\DataFactory\SqlData\Scripts\CopySubject.sql,D:\a\MySolution\MySolution\MySolution\DataFactory\SqlData\Scripts\CopyView.sql,D:\a\MySolution\MySolution\MySolution\DataFactory\SqlData\Scripts\SelectEmailMessages.sql,D:\...
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod8
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:519697BD-B9D8-4211-88D7-0F1EC5869F54
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\5
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\5\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\5\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:519697BD-B9D8-4211-88D7-0F1EC5869F54
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\MySolution.Tests
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:519697BD-B9D8-4211-88D7-0F1EC5869F54
  - sonar.projectName=MySolution.Tests
  - sonar.sourceEncoding=utf-8
  - sonar.sources=
  - sonar.tests=D:\a\MySolution\MySolution\MySolution.Tests\App.config,D:\a\MySolution\MySolution\MySolution.Tests\packages.config,D:\a\MySolution\MySolution\MySolution.Tests\obj\MySolution.Tests.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\MySolution.Tests\obj\project.assets.json,D:\a\MySolution\MySolution\MySolution.Tests\bin\Release\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\MySolution.Tests\bin\Release\MySolution.DatabaseAdmin.dll.config,D:\a\MySolution\MySolution\MySolution.Tests\bin\Release\MySolution.dll.config,D:\a\MySolution\MySolution\MySolution.Tests\bin\Release\MySolution.Tests.dll.config,D:\a\MySolution\MySolution\MySolution.Tests\bin\Release\Redacted.SmsServer.dll.config,D:\a\MySolution\MySolution\MySolution.Tests\Analytics\I...
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod9
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:632606B2-5B1E-478D-9575-1B55E93DD45A
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\12
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\12\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\12\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:632606B2-5B1E-478D-9575-1B55E93DD45A
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\Redacted.OtherSystemConnectionLegacy
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:632606B2-5B1E-478D-9575-1B55E93DD45A
  - sonar.projectName=Redacted.OtherSystemConnectionLegacy
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\Redacted.OtherSystemConnectionLegacy\app.config,D:\a\MySolution\MySolution\Redacted.OtherSystemConnectionLegacy\obj\Redacted.OtherSystemConnectionLegacy.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\Redacted.OtherSystemConnectionLegacy\obj\project.assets.json,D:\a\MySolution\MySolution\Redacted.OtherSystemConnectionLegacy\bin\Release\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\Redacted.OtherSystemConnectionLegacy\bin\Release\Redacted.OtherSystemConnectionLegacy.dll.config,D:\a\MySolution\MySolution\Redacted.OtherSystemConnectionLegacy\OtherSystemClient.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnectionLegacy\Properties\AssemblyInfo.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnectionLegacy\NXT.snk
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod4
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:2150A98B-D4BE-49B9-B9A0-66BE37CD55F3
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\2
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\2\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\2\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:2150A98B-D4BE-49B9-B9A0-66BE37CD55F3
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\Redacted.OtherSystemConnection71
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:2150A98B-D4BE-49B9-B9A0-66BE37CD55F3
  - sonar.projectName=Redacted.OtherSystemConnection71
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\Redacted.OtherSystemConnection71\app.config,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection71\obj\Redacted.OtherSystemConnection71.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection71\obj\project.assets.json,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection71\bin\Release\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection71\bin\Release\Redacted.OtherSystemConnection71.dll.config,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection71\OtherSystemWebClient.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection71\Properties\AssemblyInfo.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection71\StatusTypeAdapter.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection71\NXT.snk
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod6
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:5873F346-AF88-4679-A35F-26E7AD35EC96
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:5873F346-AF88-4679-A35F-26E7AD35EC96
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\MySolution.Configuration
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:5873F346-AF88-4679-A35F-26E7AD35EC96
  - sonar.projectName=ServerConfig
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\MySolution.Configuration\app.config,D:\a\MySolution\MySolution\MySolution.Configuration\bin\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\MySolution.Configuration\bin\MySolution.DatabaseAdmin.dll.config,D:\a\MySolution\MySolution\MySolution.Configuration\bin\MySolution.dll.config,D:\a\MySolution\MySolution\MySolution.Configuration\bin\Redacted.SmsServer.dll.config,D:\a\MySolution\MySolution\MySolution.Configuration\bin\ServerConfig.exe.config,D:\a\MySolution\MySolution\MySolution.Configuration\obj\project.assets.json,D:\a\MySolution\MySolution\MySolution.Configuration\obj\ServerConfig.vbproj.nuget.dgspec.json,D:\a\MySolution\MySolution\MySolution.Configuration\AssemblyInfo.vb,D:\a\MySolution\MySolution\MySolution.Configu...
  - sonar.vbnet.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\6
  - sonar.vbnet.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\6\Issues.json
  - sonar.vbnet.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\6\Telemetry.json
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod10
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:F13C1EDF-8D0B-465A-BE2C-364BD64410AB
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\9
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\9\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\9\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:F13C1EDF-8D0B-465A-BE2C-364BD64410AB
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\MySolution.ConsoleApp
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:F13C1EDF-8D0B-465A-BE2C-364BD64410AB
  - sonar.projectName=MySolution.ConsoleApp
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\MySolution.ConsoleApp\App.config,D:\a\MySolution\MySolution\MySolution.ConsoleApp\nlog.config,D:\a\MySolution\MySolution\MySolution.ConsoleApp\obj\MySolution.ConsoleApp.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\MySolution.ConsoleApp\obj\project.assets.json,D:\a\MySolution\MySolution\MySolution.ConsoleApp\bin\Release\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\MySolution.ConsoleApp\bin\Release\Redacted.OtherSystemConnection71.dll.config,D:\a\MySolution\MySolution\MySolution.ConsoleApp\bin\Release\MySolution.ConsoleApp.exe.config,D:\a\MySolution\MySolution\MySolution.ConsoleApp\bin\Release\MySolution.DatabaseAdmin.dll.config,D:\a\MySolution\MySolution\MySolution.ConsoleApp\bin\Release\MySolution.dll.config,D:\a\Redacted....
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod13
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:D611CE45-2E62-4D12-91A8-6073CBCEE462
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\1
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\1\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\1\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:D611CE45-2E62-4D12-91A8-6073CBCEE462
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\Redacted.OtherSystemConnection
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:D611CE45-2E62-4D12-91A8-6073CBCEE462
  - sonar.projectName=Redacted.OtherSystemConnection
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\Redacted.OtherSystemConnection\app.config,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection\obj\Redacted.OtherSystemConnection.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection\obj\project.assets.json,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection\bin\Release\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection\FileAbstractions\DirStatusAmalgamation.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection\IServerOtherSystemFunctions.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection\IOtherSystemConnection.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection\OtherSystemClientBase.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection\FileAbstractions\OtherSystemRole.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection\OtherSystemClientFactory.cs,D:\a\MySolution\MySolution\Redacted....
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod1
Scanner properties of module: MyCompany_MySolution:MyCompany_MySolution:00A51B72-9330-4CD9-85E3-54792F854F12
  - sonar.cs.analyzer.projectOutPaths=D:\a\MySolution\MySolution\.sonarqube\out\11
  - sonar.cs.roslyn.reportFilePaths=D:\a\MySolution\MySolution\.sonarqube\out\11\Issues.json
  - sonar.cs.scanner.telemetry=D:\a\MySolution\MySolution\.sonarqube\out\11\Telemetry.json
  - sonar.moduleKey=MyCompany_MySolution:MyCompany_MySolution:00A51B72-9330-4CD9-85E3-54792F854F12
  - sonar.projectBaseDir=D:\a\MySolution\MySolution\Redacted.OtherSystemConnection70
  - sonar.projectKey=MyCompany_MySolution:MyCompany_MySolution:00A51B72-9330-4CD9-85E3-54792F854F12
  - sonar.projectName=Redacted.OtherSystemConnection70
  - sonar.sourceEncoding=utf-8
  - sonar.sources=D:\a\MySolution\MySolution\Redacted.OtherSystemConnection70\app.config,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection70\obj\Redacted.OtherSystemConnection70.csproj.nuget.dgspec.json,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection70\obj\project.assets.json,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection70\bin\Release\Redacted.OtherSystemConnection.dll.config,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection70\bin\Release\Redacted.OtherSystemConnection70.dll.config,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection70\OtherSystemWebClient.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection70\Properties\AssemblyInfo.cs,D:\a\MySolution\MySolution\Redacted.OtherSystemConnection70\NXT.snk
  - sonar.working.directory=D:\a\MySolution\MySolution\.sonarqube\out\.sonar\mod3



Thanks,

Ray

Hi @rjalbert,

Thanks for the update. The scanner output reveals the issue.

SonarCloud analyzes source code, not compiled DLLs. However, it counts LOC for every file type it recognizes, e.g. JSON, XML, YAML, SQL, config files, etc.

The root cause of your inflated LOC count is that every module is including its obj\ and bin\Release\ directories in sonar.sources. For example, MySolution.PSRunner includes:

obj\MySolution.PSRunner.csproj.nuget.dgspec.json
obj\project.assets.json
bin\Release\*.dll.config   ← repeated for every module

The project.assets.json file can often be hundreds of lines long, and repeated across all 14 modules, the count multiplies quickly. On top of that, your top-level sonar.sources pulls in Setup64\deploy\ (which can be full of .dll.config files) and even your GitHub Actions .yml workflow file.

My recommendation is to add sonar.exclusions to your dotnet-sonarscanner begin step:

${{ runner.temp }}\scanner\dotnet-sonarscanner begin `
  /k:"MyCompany-Software_${{ env.SOLUTION }}" `
  /o:"mycompany-software" `
  /d:sonar.token="${{ secrets.SONAR_TOKEN }}" `
  /d:sonar.exclusions="**/obj/**,**/bin/**,**/Setup64/**"

Let us know if the LOC count drops closer to the branch’s original LOC baseline after rerunning the pipeline and rescanning.

Best regards,

Stevan

Stevan,

I updated the sonar.exclusions. I did it in the SonarCloud UI instead, but the SonarScanner context shows its using my updated values.

  • sonar.exclusions=/*.jav,/.java,**/.c,/*.h,/.cc,**/.cpp,/*.cxx,/.c++,**/.hh,/*.hpp,/.hxx,**/.h++,/*.ipp,/.m,**/.rs,/*.dart,/*.sql,/obj/,/bin/,/Setup64/

It has reduced the LOC from 58,914 to 58,780, but it hasn’t really fixed my problem.

After making the change, I did a super simple PR on the long lived branch, literally just adding a comment.

The analysis triggered by creating the PR worked fine.

The analysis triggered by merging the PR failed, as it did before.

The error its reporting is this:

Error message: This analysis will make your organization ‘xxxxxxx-software’ reach the maximum allowed lines limit of 1000000. Current LOC usage is: 882676. LOC count in this analysis: 217288. Language distribution: cs=211911,vbnet=1687,xml=3609,yaml=81
Please contact the administrator of the organization to resolve this issue.

I don’t get were the LOC count in this analysis is coming from.

The long lived branch that I started from has 58,780 LOC.

The analysis from creating the PR worked fine.

Why does it think the LOC needed for the merge is over 200K?

It looks like are erroring at this step in the github action.

From the PR (which worked)

2026-07-17T16:35:15.2507997Z ##[group]Run sonarsource/sonarqube-quality-gate-action@master
2026-07-17T16:35:15.2508429Z with:
2026-07-17T16:35:15.2508619Z   pollingTimeoutSec: 120
2026-07-17T16:35:15.2508948Z   scanMetadataReportFile: .sonarqube/out/.sonar/report-task.txt
2026-07-17T16:35:15.2509287Z env:
2026-07-17T16:35:15.2509486Z   SOLUTION: redacted
2026-07-17T16:35:15.2509815Z   JAVA_HOME: C:\hostedtoolcache\windows\Java_Zulu_jdk\17.0.19-10\x64
2026-07-17T16:35:15.2510255Z   JAVA_HOME_17_X64: C:\hostedtoolcache\windows\Java_Zulu_jdk\17.0.19-10\x64
2026-07-17T16:35:15.2510708Z   NUGET: C:\hostedtoolcache\windows\nuget.exe\7.6.0\x64/nuget.exe
2026-07-17T16:35:15.2511181Z   SONAR_TOKEN: ***
2026-07-17T16:35:15.2511373Z   SONAR_HOST_URL: 
2026-07-17T16:35:15.2511552Z ##[endgroup]
2026-07-17T16:35:15.2729208Z ##[group]Run $GITHUB_ACTION_PATH/script/check-quality-gate.sh ".sonarqube/out/.sonar/report-task.txt" "120"
2026-07-17T16:35:15.2730102Z e[36;1m$GITHUB_ACTION_PATH/script/check-quality-gate.sh ".sonarqube/out/.sonar/report-task.txt" "120"e[0m
2026-07-17T16:35:15.2747176Z shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
2026-07-17T16:35:15.2747579Z env:
2026-07-17T16:35:15.2747861Z   SOLUTION: redacted
2026-07-17T16:35:15.2748456Z   JAVA_HOME: C:\hostedtoolcache\windows\Java_Zulu_jdk\17.0.19-10\x64
2026-07-17T16:35:15.2749327Z   JAVA_HOME_17_X64: C:\hostedtoolcache\windows\Java_Zulu_jdk\17.0.19-10\x64
2026-07-17T16:35:15.2749774Z   NUGET: C:\hostedtoolcache\windows\nuget.exe\7.6.0\x64/nuget.exe
2026-07-17T16:35:15.2750235Z   SONAR_TOKEN: ***
2026-07-17T16:35:15.2750446Z   SONAR_HOST_URL: 
2026-07-17T16:35:15.2750634Z ##[endgroup]
2026-07-17T16:35:16.7635728Z 
2026-07-17T16:35:17.5935872Z e[32m✔ Quality Gate has PASSED.e[0m

From the merge (which failed)

2026-07-17T16:48:19.1207521Z ##[group]Run sonarsource/sonarqube-quality-gate-action@master
2026-07-17T16:48:19.1207947Z with:
2026-07-17T16:48:19.1208133Z   pollingTimeoutSec: 120
2026-07-17T16:48:19.1208452Z   scanMetadataReportFile: .sonarqube/out/.sonar/report-task.txt
2026-07-17T16:48:19.1208947Z env:
2026-07-17T16:48:19.1209117Z   SOLUTION: redacted.Server
2026-07-17T16:48:19.1209436Z   JAVA_HOME: C:\hostedtoolcache\windows\Java_Zulu_jdk\17.0.19-10\x64
2026-07-17T16:48:19.1209875Z   JAVA_HOME_17_X64: C:\hostedtoolcache\windows\Java_Zulu_jdk\17.0.19-10\x64
2026-07-17T16:48:19.1210301Z   NUGET: C:\hostedtoolcache\windows\nuget.exe\7.6.0\x64/nuget.exe
2026-07-17T16:48:19.1210835Z   SONAR_TOKEN: ***
2026-07-17T16:48:19.1211046Z   SONAR_HOST_URL: 
2026-07-17T16:48:19.1211226Z ##[endgroup]
2026-07-17T16:48:19.1456474Z ##[group]Run $GITHUB_ACTION_PATH/script/check-quality-gate.sh ".sonarqube/out/.sonar/report-task.txt" "120"
2026-07-17T16:48:19.1457256Z e[36;1m$GITHUB_ACTION_PATH/script/check-quality-gate.sh ".sonarqube/out/.sonar/report-task.txt" "120"e[0m
2026-07-17T16:48:19.1471895Z shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
2026-07-17T16:48:19.1472281Z env:
2026-07-17T16:48:19.1472459Z   SOLUTION: redacted.Server
2026-07-17T16:48:19.1472795Z   JAVA_HOME: C:\hostedtoolcache\windows\Java_Zulu_jdk\17.0.19-10\x64
2026-07-17T16:48:19.1473237Z   JAVA_HOME_17_X64: C:\hostedtoolcache\windows\Java_Zulu_jdk\17.0.19-10\x64
2026-07-17T16:48:19.1473664Z   NUGET: C:\hostedtoolcache\windows\nuget.exe\7.6.0\x64/nuget.exe
2026-07-17T16:48:19.1474087Z   SONAR_TOKEN: ***
2026-07-17T16:48:19.1474448Z   SONAR_HOST_URL: 
2026-07-17T16:48:19.1474741Z ##[endgroup]
2026-07-17T16:48:49.0777717Z .....
2026-07-17T16:48:49.6725956Z curl: (22) The requested URL returned error: 404
2026-07-17T16:48:49.6918453Z ##[error]Process completed with exit code 22.

If there’s any more info you need, let me know.

Thanks

Ray

Hi @rjalbert ,

Thanks for the update.

Can you confirm the values you put for sonar.exclusions? The formatting treated them as markdown. Use a code block so we can see if the syntax needs any tweaking.

Best regards,

Stevan

Stevan,

Here they are. Sorry about the formatting. I totally missed that when I was pasting it in.

**/*.jav,**/*.java,**/*.c,**/*.h,**/*.cc,**/*.cpp,**/*.cxx,**/*.c++,**/*.hh,**/*.hpp,**/*.hxx,**/*.h++,**/*.ipp,**/*.m,**/*.rs,**/*.dart,**/*.sql,**/obj/**,**/bin/**,**/Setup64/**

In the UI, I entered each pattern on as its own entry though.

Kind of a side question. Can throw that whole comma delimited list in as one entry in the UI? If so, it makes my life a little easier rolling these changes out to my other projects.

Thanks

Ray