Asked by:
Diagnosing Console error of "Message is incomplete" for blazor.server.js

Question
-
User-1411892346 posted
Long time .NET developer who took an unfortunate 6 year hold to run bosses other companies, now leapfrogging from "Hey, look, all our sites are using UpdatePanels" to ASP.Net Core 3.0. Decided to start by going straight to blazor and starting fresh on rewriting our main landing page. Everything works perfectly in all browsers when being run on my development machine, then when I deploy it, it -looks- okay until I went to one of my subpages and noticed that things weren't rendering correctly. When I opened up developer tools in Edge-Canary, I noticed on the very first page(not the one that has the render problems) the following error(Message is incomplete).
2019-12-02T17:08:17.706Z] Error: Connection disconnected with error 'Error: Error parsing handshake response: Error: Message is incomplete.'. e.log @ blazor.server.js:1 e.stopConnection @ blazor.server.js:1 transport.onclose @ blazor.server.js:1 e.raiseOnClose @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 s @ blazor.server.js:1 Promise.then (async) c @ blazor.server.js:1 s @ blazor.server.js:1 Promise.then (async) c @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 k @ blazor.server.js:1 e.poll @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 s @ blazor.server.js:1 Promise.then (async) c @ blazor.server.js:1 s @ blazor.server.js:1 Promise.then (async) c @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 k @ blazor.server.js:1 e.connect @ blazor.server.js:1 e.startTransport @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 B @ blazor.server.js:1 e.createTransport @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 s @ blazor.server.js:1 Promise.then (async) c @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 B @ blazor.server.js:1 e.startInternal @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 B @ blazor.server.js:1 e.start @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 v @ blazor.server.js:1 e.startInternal @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 v @ blazor.server.js:1 e.startWithStateTransitions @ blazor.server.js:1 e.start @ blazor.server.js:1 (anonymous) @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 r @ blazor.server.js:8 E @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 r @ blazor.server.js:8 w @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 n @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 Show 39 more frames from Library code blazor.server.js:15 [2019-12-02T17:08:17.708Z] Error: Error: Error parsing handshake response: Error: Message is incomplete. e.log @ blazor.server.js:15 S @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 a @ blazor.server.js:8 Promise.then (async) c @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 r @ blazor.server.js:8 E @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 r @ blazor.server.js:8 w @ blazor.server.js:8 (anonymous) @ blazor.server.js:8 n @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 (anonymous) @ blazor.server.js:1 blazor.server.js:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the 'Connected' State. at e.send (blazor.server.js:1) at e.sendMessage (blazor.server.js:1) at e.sendWithProtocol (blazor.server.js:1) at blazor.server.js:1 at new Promise (<anonymous>) at e.invoke (blazor.server.js:1) at e.<anonymous> (blazor.server.js:15) at blazor.server.js:15 at Object.next (blazor.server.js:15) at blazor.server.js:15
I enabled tracing/logging in IIS on the server and there's no response errors. In Program.cs I have CreateHostBuilder ConfigureLogging with AddDebug/EventLog/EventSourceLogger/Console I commented out as many things as I could and still get the error in console on all three of the servers(but not on my development machine). Where do I even begin to try and diagnose this? If it was broken on my development machine too, I think it would be at least a little easier, but I'm at a loss when the servers don't think there's a problem, just the blazor.server.js running in the browser. I'm assuming it's some sort of security setting somewhere between localhost and a live url, but I can't seem to find anything and the message is insanely unhelpful.
Monday, December 2, 2019 5:14 PM
All replies
-
User-1411892346 posted
In typical fashion, a few minutes after posting, managed to track down what was going on(maybe-sort-of). In my Startup.cs, I had AddResponseCaching, UseResponseCaching, and the app.Use detailed in https://docs.microsoft.com/en-us/aspnet/core/performance/caching/middleware?view=aspnetcore-3.0 . As soon as I commented these out, it works fine both locally and remotely.
I'm going to assume that Visual Studio does something that even when run in Release mode that stops the responsecaching and when responsecaching is truly on it gets lost as to what circuit it's on(from the beginners knowledge level I have). If this really is the case, it would be nice for the documentation to indicate it's not for blazor apps or, better yet, some sort of warning/error anywhere.
I'm leaving the post up for the next person that can't figure out why their blazor app isn't working.
Monday, December 2, 2019 5:36 PM