(C#) Start pointer should be before end pointer

I suddenly started getting the Start pointer should be before end pointer error message in my latest PR, from the Sonar Scanner for .NET/msbuild.

Looking online, I saw other instances of this error in the past due to specific language keywords; so I removed all code from my PR, watched the build/scan succeed, and then added pieces of my code back into the PR one by one until I narrowed down the culprit: it appears to be the new extension keyword added in .NET 10. Adding that code into my PR reliably causes the SonarScanner to fail with these details:

...
INFO: Sensor C# [strykernet]
INFO: Importing results from 6 proto files in '/home/runner/work/<project>/<project>/.sonarqube/out/6/output-cs'
INFO: Importing results from 6 proto files in '/home/runner/work/<project>/<project>/.sonarqube/out/5/output-cs'
INFO: Importing results from 6 proto files in '/home/runner/work/<project>/<project>/.sonarqube/out/1/output-cs'
INFO: Importing results from 6 proto files in '/home/runner/work/<project>/<project>/.sonarqube/out/3/output-cs'
INFO: Importing results from 6 proto files in '/home/runner/work/<project>/<project>/.sonarqube/out/2/output-cs'
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 14.937s
INFO: Final Memory: 41M/154M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarScanner execution
java.lang.IllegalArgumentException: Start pointer [line=1, lineOffset=0] should be before end pointer [line=1, lineOffset=0]
	at org.sonar.api.utils.Preconditions.checkArgument(Preconditions.java:43)
	at org.sonar.api.batch.fs.internal.DefaultInputFile.newRangeValidPointers(DefaultInputFile.java:383)
	at org.sonar.api.batch.fs.internal.DefaultInputFile.newRange(DefaultInputFile.java:324)
	at org.sonarsource.dotnet.shared.plugins.SensorContextUtils.toTextRange(SensorContextUtils.java:60)
	at org.sonarsource.dotnet.shared.plugins.protobuf.SymbolRefsImporter.save(SymbolRefsImporter.java:64)
	at org.sonarsource.dotnet.shared.plugins.ProtobufDataImporter.importResults(ProtobufDataImporter.java:83)
	at org.sonarsource.dotnet.shared.plugins.DotNetSensor.importResults(DotNetSensor.java:101)
	at org.sonarsource.dotnet.shared.plugins.DotNetSensor.execute(DotNetSensor.java:81)
	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:64)
	at org.sonar.scanner.sensor.ProjectSensorsExecutor.execute(ProjectSensorsExecutor.java:52)
	at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:371)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
	at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:137)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:71)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:65)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
	at jdk.proxy1/jdk.proxy1.$Proxy0.execute(Unknown Source)
	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:123)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:78)
	at org.sonarsource.scanner.cli.Main.main(Main.java:59)
ERROR: 
The SonarScanner did not complete successfully
23:57:42.358  Post-processing failed. Exit code: 1
Error: Process completed with exit code 1.

Can anyone help me confirm this theory? I couldn’t find anything about it on the forum, is it a known issue? If so, is there a timeframe on how long it might take to address it? This is a complete blocker for my project.

Additional info:

  • Build runner OS: Ubuntu 22.04.5 (LTS)
  • JDK: Temurin Hotspot 17.0.18-8/x64
  • SonarScanner version: .NET 11.2
    • Pre-installed on runner, been working for years. As mentioned above, it worked until the extension code is added in my PR.

Hi,

Welcome to the community and thanks for this report!

What’s your SonarQube version? Check the page footer if you’re not sure.

 
Ann

SonarQube Server is Enterprise Edition - Version 10.1 (build 73491)

Hi,

Your version is past EOL. You should update to either the latest version or the current LTA (long-term active version) at your earliest convenience. Your update path is:

10.1 → 2025.1.4 → 2026.1.2 → 2026.2 (last step optional)

You may find these resources helpful:

If you have questions about upgrading, feel free to open a new thread for that here.

If your error persists after update, please come back to us.

 
HTH,
Ann