-
Notifications
You must be signed in to change notification settings - Fork 30
Closed
dotnet/roslyn
#76691Description
Describe the Issue
The C# Language Server associated with the C# Dev Kit crashes shortly after RooCode opens a document for editing. The crash is caused by a System.UriFormatException: Invalid URI: The Uri string is too long.
originating from the Roslyn.LanguageServer.Protocol.DocumentUriConverter
. This leads to the server shutting down and C# language features becoming unavailable.
Steps To Reproduce
- Open a solution
- Tell RooCode to do something
- After a few edits, the language server crashes
Expected Behavior
Not crash
Environment Information
Environment
- OS: Windows 10
- VS Code Version: 1.99.2
- C# Dev Kit Extension Version: 1.18.23
- .NET SDK Version Used: 9.0.1
Logs:
2025-04-13 22:52:15.466 [info] Locating .NET runtime version 9.0.1
2025-04-13 22:52:20.292 [info] Dotnet path: C:\Program Files\dotnet\dotnet.exe
2025-04-13 22:52:20.292 [info] Activating C# + C# Dev Kit + C# IntelliCode...
2025-04-13 22:52:22.354 [info] [stdout] {"pipeName":"\\\\.\\pipe\\a3516072"}
2025-04-13 22:52:22.354 [info] received named pipe information from server
2025-04-13 22:52:22.356 [info] client has connected to server
2025-04-13 22:52:22.434 [info] [Info - 10:52:22 PM] [Program] Language server initialized
2025-04-13 22:52:23.882 [info] [Info - 10:52:23 PM] [serviceBroker/connect] [WorkspaceProjectFactoryService] Project C:\Users\User\source\repos\.source\EventFilter\src\EventFilter.Tests\EventFilter.Tests.csproj loaded by C# Dev Kit
2025-04-13 22:52:24.037 [info] [Info - 10:52:24 PM] [serviceBroker/connect] [WorkspaceProjectFactoryService] Project C:\Users\User\source\repos\.source\EventFilter\src\EventFilter\EventFilter.csproj loaded by C# Dev Kit
2025-04-13 22:52:24.040 [info] [Info - 10:52:24 PM] [serviceBroker/connect] [WorkspaceProjectFactoryService] Project C:\Users\User\source\repos\.source\EventFilter\src\EventFilter.Demo\EventFilter.Demo.csproj loaded by C# Dev Kit
2025-04-13 22:54:51.526 [info] [Error - 10:54:51 PM] [textDocument/didOpen] [LanguageServerHost] System.UriFormatException: Invalid URI: The Uri string is too long.
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind, UriCreationOptions& creationOptions)
at Roslyn.LanguageServer.Protocol.DocumentUriConverter.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options) in /_/src/LanguageServer/Protocol/Protocol/Converters/DocumentUriConverter.cs:line 17
at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, T& value, JsonSerializerOptions options, ReadStack& state)
at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.Deserialize(Utf8JsonReader& reader, ReadStack& state)
at System.Text.Json.JsonSerializer.Deserialize[TValue](JsonElement element, JsonSerializerOptions options)
at Microsoft.CommonLanguageServerProtocol.Framework.SystemTextJsonLanguageServer`1.DeserializeRequest[TRequest](Object serializedRequest, RequestHandlerMetadata metadata) in /_/src/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework/SystemTextJsonLanguageServer.cs:line 29
at Microsoft.CommonLanguageServerProtocol.Framework.QueueItem`1.TryDeserializeRequest[TRequest](AbstractLanguageServer`1 languageServer, RequestHandlerMetadata requestHandlerMetadata, Boolean isMutating, TRequest& request) in /_/src/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework/QueueItem.cs:line 120
2025-04-13 22:54:51.528 [info] [Error - 10:54:51 PM] [LanguageServerHost] System.UriFormatException: Invalid URI: The Uri string is too long.
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind, UriCreationOptions& creationOptions)
at Roslyn.LanguageServer.Protocol.DocumentUriConverter.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options) in /_/src/LanguageServer/Protocol/Protocol/Converters/DocumentUriConverter.cs:line 17
at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, T& value, JsonSerializerOptions options, ReadStack& state)
at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.Deserialize(Utf8JsonReader& reader, ReadStack& state)
at System.Text.Json.JsonSerializer.Deserialize[TValue](JsonElement element, JsonSerializerOptions options)
at Microsoft.CommonLanguageServerProtocol.Framework.SystemTextJsonLanguageServer`1.DeserializeRequest[TRequest](Object serializedRequest, RequestHandlerMetadata metadata) in /_/src/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework/SystemTextJsonLanguageServer.cs:line 29
at Microsoft.CommonLanguageServerProtocol.Framework.QueueItem`1.TryDeserializeRequest[TRequest](AbstractLanguageServer`1 languageServer, RequestHandlerMetadata requestHandlerMetadata, Boolean isMutating, TRequest& request) in /_/src/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework/QueueItem.cs:line 120
--- End of stack trace from previous location ---
at Microsoft.CommonLanguageServerProtocol.Framework.AbstractLanguageServer`1.DelegatingEntryPoint.InvokeAsync(IRequestExecutionQueue`1 queue, Object requestObject, ILspServices lspServices, CancellationToken cancellationToken) in /_/src/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework/AbstractLanguageServer.cs:line 209
at Microsoft.CommonLanguageServerProtocol.Framework.SystemTextJsonLanguageServer`1.SystemTextJsonDelegatingEntryPoint.ExecuteRequestAsync(Nullable`1 request, CancellationToken cancellationToken) in /_/src/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework/SystemTextJsonLanguageServer.cs:line 87
at Microsoft.CommonLanguageServerProtocol.Framework.QueueItem`1.CreateRequestContextAsync[TRequest](IMethodHandler handler, RequestHandlerMetadata requestHandlerMetadata, AbstractLanguageServer`1 languageServer, CancellationToken cancellationToken)
at Microsoft.CommonLanguageServerProtocol.Framework.RequestExecutionQueue`1.ProcessQueueCoreAsync[TRequest,TResponse](IQueueItem`1 work, IMethodHandler handler, RequestHandlerMetadata metadata, ConcurrentDictionary`2 concurrentlyExecutingTasks, CancellationTokenSource currentWorkCts, CancellationToken cancellationToken)
at Microsoft.CommonLanguageServerProtocol.Framework.RequestExecutionQueue`1.InvokeProcessCoreAsync(IQueueItem`1 work, RequestHandlerMetadata metadata, IMethodHandler handler, MethodInfo methodInfo, ConcurrentDictionary`2 concurrentlyExecutingTasks, CancellationTokenSource currentWorkCts, CancellationToken cancellationToken) in /_/src/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework/RequestExecutionQueue.cs:line 320
at Microsoft.CommonLanguageServerProtocol.Framework.RequestExecutionQueue`1.ProcessQueueAsync() in /_/src/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework/RequestExecutionQueue.cs:line 272
2025-04-13 22:54:51.529 [info] [Info - 10:54:51 PM] Error processing queue, shutting down
2025-04-13 22:54:51.549 [info] [Error - 10:54:51 PM] Workspace diagnostic pull failed.
2025-04-13 22:54:51.549 [info] Canceled: Canceled
at l4.handleFailedRequest (c:\Users\User\.vscode\extensions\ms-dotnettools.csharp-2.73.16-win32-x64\dist\extension.js:89:9256)
at l4.handleFailedRequest (c:\Users\User\.vscode\extensions\ms-dotnettools.csharp-2.73.16-win32-x64\dist\extension.js:1227:870)
at c:\Users\User\.vscode\extensions\ms-dotnettools.csharp-2.73.16-win32-x64\dist\extension.js:83:12419
at runNextTicks (node:internal/process/task_queues:60:5)
at processImmediate (node:internal/timers:454:9)
at Object.z$ [as provideWorkspaceDiagnostics] (c:\Users\User\.vscode\extensions\ms-dotnettools.csharp-2.73.16-win32-x64\dist\extension.js:1221:5524)
at kJ.pullWorkspaceAsync (c:\Users\User\.vscode\extensions\ms-dotnettools.csharp-2.73.16-win32-x64\dist\extension.js:83:9721)
2025-04-13 22:54:51.562 [info] [Error - 10:54:51 PM] Client Microsoft.CodeAnalysis.LanguageServer: connection to server is erroring.
write EOF
Shutting down server.
2025-04-13 22:54:51.562 [info] [Error - 10:54:51 PM] Client Microsoft.CodeAnalysis.LanguageServer: connection to server is erroring.
write EOF
Shutting down server.
2025-04-13 22:54:51.562 [info] [Error - 10:54:51 PM] Client Microsoft.CodeAnalysis.LanguageServer: connection to server is erroring.
write EOF
2025-04-13 22:54:51.563 [info] [Error - 10:54:51 PM] Request textDocument/diagnostic failed.
2025-04-13 22:54:51.563 [info] Message: write EOF
Code: -32099
2025-04-13 22:54:51.563 [info] [Error - 10:54:51 PM] Document pull failed for text document file:///c%3A/Users/User/source/repos/.source/EventFilter/src/EventFilter/Mongo/QueryGeneration/MongoQueryGenerator.cs
2025-04-13 22:54:51.563 [info] Message: write EOF
Code: -32099
2025-04-13 22:54:51.572 [info] [Error - 10:54:51 PM] Client Microsoft.CodeAnalysis.LanguageServer: connection to server is erroring.
Cannot call write after a stream was destroyed
2025-04-13 22:54:51.573 [info] [Error - 10:54:51 PM] Request textDocument/diagnostic failed.
2025-04-13 22:54:51.573 [info] Message: Cannot call write after a stream was destroyed
Code: -32099
2025-04-13 22:54:51.573 [info] [Error - 10:54:51 PM] Document pull failed for text document file:///c%3A/Users/User/source/repos/.source/EventFilter/src/EventFilter/Mongo/QueryGeneration/MongoQueryGenerator.cs
2025-04-13 22:54:51.573 [info] Message: Cannot call write after a stream was destroyed
Code: -32099
2025-04-13 22:54:51.581 [info] [Error - 10:54:51 PM] Connection to server got closed. Server will not be restarted.
2025-04-13 22:54:51.583 [error] Error making textDocument/_vs_getProjectContexts request Pending response rejected since connection got disposed
2025-04-13 22:54:51.583 [info] [Error - 10:54:51 PM] Stopping server failed
2025-04-13 22:54:51.583 [info] Message: Pending response rejected since connection got disposed
Code: -32097
2025-04-13 22:54:51.583 [info] [Error - 10:54:51 PM] Stopping server failed
2025-04-13 22:54:51.583 [info] Message: Pending response rejected since connection got disposed
Code: -32097
2025-04-13 22:54:51.583 [info] [Error - 10:54:51 PM] Stopping server failed
2025-04-13 22:54:51.583 [info] Message: Pending response rejected since connection got disposed
Code: -32097