#85674·roslyn

[WebToolsE2E] dotnet watch crashes with "Unexpected true" InvalidOperationException when a new file is added

Author: joniel-boloconCreated Sep 16, 2026Updated Sep 16, 2026
LabelsArea-InteractiveInteractive-EnC

REGRESSION INFO: Not a regression

INSTALL STEPS OS: windows x64 Install SDK 10.0.401

REPRO STEPS

  1. Open CMD > run the following code:
bash
dotnet new webapp -n RazorHotReloadApp
cd RazorHotReloadApp
dotnet build
dotnet watch run --verbose
  1. Open another CMD > add a new file: notepad wwwroot\index.html

Note:

ACTUAL An unexpected error will encounter after trying to create a new file while dotnet watch is running

Image
C:\Users\v-jbolocon\RazorHotReloadApp>dotnet watch run --verbose
dotnet watch ⌚ Working directory: 'C:\Users\v-jbolocon\RazorHotReloadApp'
dotnet watch ⌚ Watching with Hot Reload.
dotnet watch  Hot reload enabled. For a list of supported edits, see https://aka.ms/dotnet/hot-reload.
dotnet watch  Press Ctrl+R to restart.
dotnet watch  Restoring C:\Users\v-jbolocon\RazorHotReloadApp\RazorHotReloadApp.csproj ...
dotnet watch  Launched 'C:\Program Files\dotnet\dotnet.exe' with arguments 'restore C:\Users\v-jbolocon\RazorHotReloadApp\RazorHotReloadApp.csproj --property:NuGetInteractive=true -consoleLoggerParameters:NoSummary': process id 17328
Restore complete (0.4s)

Build succeeded in 1.0s
dotnet watch ⌚ Process id 17328 ran for 1317ms and exited with exit code 0.
dotnet watch  Project graph loaded in 0.6s.
dotnet watch  Building C:\Users\v-jbolocon\RazorHotReloadApp\RazorHotReloadApp.csproj ...
dotnet watch  Launched 'C:\Program Files\dotnet\dotnet.exe' with arguments 'build C:\Users\v-jbolocon\RazorHotReloadApp\RazorHotReloadApp.csproj --property:NuGetInteractive=true --framework net10.0 --no-restore': process id 10720
  RazorHotReloadApp net10.0 succeeded (0.7s) → bin\Debug\net10.0\RazorHotReloadApp.dll

Build succeeded in 1.3s
dotnet watch ⌚ Process id 10720 ran for 1619ms and exited with exit code 0.
dotnet watch ⌚ Loading projects ...
dotnet watch  Design-time build completed in 0.7s.
dotnet watch ⌚ Loaded 1 project(s) in 0.7s.
dotnet watch  Reading static web assets manifest file: 'C:\Users\v-jbolocon\RazorHotReloadApp\obj\Debug\net10.0\staticwebassets.development.json'.
dotnet watch ⌚ Watching 80 file(s) for changes
dotnet watch ⌚ Exclusion glob: '**\node_modules\**;node_modules\**;**\jspm_packages\**;jspm_packages\**;**\bower_components\**;bower_components\**;**\packages.lock.json;bin\Debug\/**;obj\Debug\/**;bin\/**;obj\/**;bin\Debug\net10.0\publish\/**;**/*.user;**/*.*proj;**/*.sln;**/*.slnx;**/*.vssscc;**/.DS_Store' under project 'C:\Users\v-jbolocon\RazorHotReloadApp'
dotnet watch ⌚ Solution after project update: v1
dotnet watch  Hot reload session started.
dotnet watch ⌚ Application kind: WebApplication.
dotnet watch  [RazorHotReloadApp (net10.0)] Using browser-refresh middleware
dotnet watch  [RazorHotReloadApp (net10.0)] Refresh server running at ws://localhost:57819,wss://localhost:57820.
dotnet watch ⌚ Configured to launch a browser on ASP.NET Core application startup.
dotnet watch  [RazorHotReloadApp (net10.0)] Waiting for application to connect to pipe 'fbbad6d756ed4fc0a52a25b3c4c854bd'.
dotnet watch  [RazorHotReloadApp (net10.0)] Launched 'C:\Program Files\dotnet\dotnet.exe' with arguments 'run --no-build --framework net10.0 -e DOTNET_WATCH=1 -e DOTNET_WATCH_ITERATION=1 -e DOTNET_MODIFIABLE_ASSEMBLIES=debug -e "DOTNET_STARTUP_HOOKS=C:\Program Files\dotnet\sdk\10.0.401\DotnetTools\dotnet-watch\10.0.401\tools\net10.0\any\hotreload\net6.0\Microsoft.AspNetCore.Watch.BrowserRefresh.dll;C:\Program Files\dotnet\sdk\10.0.401\DotnetTools\dotnet-watch\10.0.401\tools\net10.0\any\hotreload\net10.0\Microsoft.Extensions.DotNetDeltaApplier.dll" -e DOTNET_WATCH_HOTRELOAD_NAMEDPIPE_NAME=fbbad6d756ed4fc0a52a25b3c4c854bd -e ASPNETCORE_AUTO_RELOAD_WS_ENDPOINT=ws://localhost:57819,wss://localhost:57820 -e ASPNETCORE_AUTO_RELOAD_WS_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmp462z3NsZkqdycymCRPt/P9lrmmU/qv5yCAuV2/cwuzQ8ZytXXhSo3as9yVdq+GWdzfus10rCgTrB0RDzoVGxVjZ87GO4OoXHNScfgdOv76wSHbnyonOF8PmOTelJbaB1jtPDhqBCVjgd3WIOsx+xyF9dyYEENMbCWNnw5p82XGazjaFZwt+RUexY6nWDEpRdi86MphGArqAUfRik/hevaZaVCvz5kskkiaYU0ABv5DdlByNah1kC0rXAV7AgPawJcSgfor3tDp1mesHb/IXfwnK5A3064LgtNlX0VWyc3pr/MssHn2sVNBXiiF2wFraEswxAPSkdicLJPlzP7GlQIDAQAB -e ASPNETCORE_AUTO_RELOAD_VDIR=/ -e ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=Microsoft.AspNetCore.Watch.BrowserRefresh': process id 22932
Using launch settings from C:\Users\v-jbolocon\RazorHotReloadApp\Properties\launchSettings.json...
dotnet watch  [RazorHotReloadApp (net10.0)] Capabilities: 'Baseline AddMethodToExistingType AddStaticFieldToExistingType AddInstanceFieldToExistingType NewTypeDefinition ChangeCustomAttributes UpdateParameters GenericUpdateMethod GenericAddMethodToExistingType GenericAddFieldToExistingType AddFieldRva AddExplicitInterfaceImplementation'.
dotnet watch ⌚ Waiting for changes
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5034
dotnet watch ⌚ Launching browser: http://localhost:5034
dotnet watch  Launched 'http://localhost:5034' with arguments '': process id 8216
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\Users\v-jbolocon\RazorHotReloadApp
warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]
      Failed to determine the https port for redirect.
dotnet watch  [Browser #1] Connected to refresh server.
dotnet watch ⌚ File change: Add 'C:\Users\v-jbolocon\RazorHotReloadApp\wwwroot\index.html'.
dotnet watch ⌚ File added: .\wwwroot\index.html
dotnet watch ⌚ Terminating remaining child processes.
dotnet watch ⌚ [RazorHotReloadApp (net10.0)] Terminating process 22932 (Ctrl+C).
info: Microsoft.Hosting.Lifetime[0]
      Application is shutting down...
dotnet watch ⌚ [RazorHotReloadApp (net10.0)] Waiting for process 22932 to exit within 5s.
dotnet watch ⌚ [RazorHotReloadApp (net10.0)] Process id 22932 ran for 73293ms and exited with exit code 0.
dotnet watch ⌚ [RazorHotReloadApp (net10.0)] Exited
dotnet watch  [RazorHotReloadApp (net10.0)] Disposing agent communication pipe
dotnet watch  [Browser #1] Disconnected.
dotnet watch ❌ An unexpected error occurred: System.InvalidOperationException: Unexpected true - file HotReloadMSBuildWorkspace.cs line 158
   at Microsoft.CodeAnalysis.Contract.Fail(String message, Int32 lineNumber, String filePath)
   at Microsoft.CodeAnalysis.ExternalAccess.HotReload.Api.HotReloadMSBuildWorkspace.UpdateFileContentAsync(IEnumerable`1 changedFiles, CancellationToken cancellationToken)
   at Microsoft.DotNet.Watch.ManagedCodeWorkspace.UpdateFileContentAsync(IReadOnlyList`1 changedFiles, CancellationToken cancellationToken)
   at Microsoft.DotNet.Watch.HotReloadDotNetWatcher.<>c__DisplayClass13_3.<<WatchAsync>g__CaptureChangedFilesSnapshot|8>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.DotNet.Watch.HotReloadDotNetWatcher.WatchAsync(CancellationToken shutdownCancellationToken)
   at Microsoft.DotNet.Watch.HotReloadDotNetWatcher.WatchAsync(CancellationToken shutdownCancellationToken)
   at Microsoft.DotNet.Watch.Program.RunAsync()

EXPECTED Creating new files while dotnet watch is running will be successful