The anysphere.csharp extension stopped working because the language server cannot be started

Describe the Bug

I have a DevContainer that I just rebuilt today. Since then, the anysphere.csharp extension does not work anymore because the language server cannot be started:

In the C# extension output I get

2025-07-17 09:13:36.214 [info] Locating .NET runtime version 9.0.1
2025-07-17 09:13:36.339 [info] Did not find .NET 9.0.1 on path, falling back to acquire runtime via ms-dotnettools.vscode-dotnet-runtime
2025-07-17 09:13:48.407 [info] Dotnet path: /home/vscode/.cursor-server/data/User/globalStorage/ms-dotnettools.vscode-dotnet-runtime/.dotnet/9.0.7~arm64/dotnet
2025-07-17 09:13:48.407 [info] Activating C# standalone...
2025-07-17 09:13:48.692 [info] Language server process exited with null

and later

2025-07-17 09:19:41.847 [info] [Error - 9:19:41 AM] Microsoft.CodeAnalysis.LanguageServer client: couldn't create connection to server.
2025-07-17 09:19:41.847 [info] Error: Timeout. Client cound not connect to server via named pipe
	at r.startServer (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:1227:20943)
	at async l (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:1227:13266)
	at async l4.createConnection (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:86:11885)
	at async l4.start (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:86:1864)
	at async r.initializeAsync (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:1227:13779)
	at async YHe (/home/vscode/.cursor-server/extensions/anysphere.csharp-1.0.1-linux-arm64/dist/extension.js:1227:27057)

In the .NET Install Tool extension output, I see:

ms-dotnettools.csharp: Trying to install .NET 9.0.7~arm64 but it already exists. No downloads or changes were made.
ms-dotnettools.csharp: Trying to install .NET 9.0.7~arm64 but it already exists. No downloads or changes were made.

There also is a runtime in /home/vscode/.cursor-server/data/User/globalStorage/ms-dotnettools.vscode-dotnet-runtime/.dotnet/9.0.7~arm64/

which has been downloaded.

The DevContainer itself is based on the .NET 8 DevContainer image from Microsoft.

It is really annoying that all of a sudde stuff that worked just stop from working. Cursor is cool tool and I thought I finally had a good setup for my day-to-day work, but now this.

Steps to Reproduce

Here is a minimum example code base to reproduce the problem. Open this in a DevContainer in Cursor you’ll get the problem that the language server does not start up:

./.config/dotnet-tools.json:
{
  "version": 1,
  "isRoot": true,
  "tools": {
    "csharpier": {
      "version": "1.0.3",
      "commands": [
        "csharpier"
      ],
      "rollForward": false
    }
  }
}
./.devcontainer/devcontainer.json:
{
        "name": "C# (.NET 8)",
        "image": "mcr.microsoft.com/devcontainers/dotnet:1-8.0",

        // Features to add to the dev container. More info: https://containers.dev/features.
        "features": {
                "ghcr.io/devcontainers/features/git:1": {},
                "ghcr.io/devcontainers/features/github-cli:1": {}
        },

        // Configure tool-specific properties.
        "customizations": {
                "vscode": {
                        "extensions": [
                                "ms-dotnettools.vscode-dotnet-runtime",
                                "anysphere.csharp",
                                "csharpier.csharpier-vscode",
                                "patcx.vscode-nuget-gallery",
                                "fernandoescolar.vscode-solution-explorer"
                        ]
                }
        },
        "containerEnv": {
                "REMOTE_CONTAINERS": "true"
        },

        // Use 'postCreateCommand' to run commands after the container is created.
        "postCreateCommand": "dotnet --version",

        // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
        "remoteUser": "vscode"
} 
./Foo/Class1.cs:
namespace Foo;

public class Class1 { }

public class Class2
{
    public Class1 class1;
}

./Foo/Foo.csproj:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
</Project>

./cs-problems.sln:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Foo", "Foo\Foo.csproj", "{0977E7F1-DB64-473F-BDDA-793F9E12AC5D}"
EndProject
Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Any CPU = Debug|Any CPU
                Release|Any CPU = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
        EndGlobalSection
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
                {0977E7F1-DB64-473F-BDDA-793F9E12AC5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {0977E7F1-DB64-473F-BDDA-793F9E12AC5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {0977E7F1-DB64-473F-BDDA-793F9E12AC5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {0977E7F1-DB64-473F-BDDA-793F9E12AC5D}.Release|Any CPU.Build.0 = Release|Any CPU
        EndGlobalSection
EndGlobal

Expected Behavior

It should start the language server

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 1.2.4
VSCode Version: 1.99.3
Commit: a8e95743c5268be73767c46944a71f4465d05c90
Date: 2025-07-10T16:53:59.659Z
Electron: 34.5.1
Chromium: 132.0.6834.210
Node.js: 20.19.0
V8: 13.2.152.41-electron.0
OS: Darwin arm64 24.5.0

Does this stop you from using Cursor

Yes - Cursor is unusable

Can be closed, issue is not related to Cursor or the anysphere.csharp extension. I was mistaken. Sorry.