Skip to content

Fix Dashboard Live not working over HTTP#3032

Merged
lahma merged 2 commits into
3.xfrom
dashboard-live
Apr 11, 2026
Merged

Fix Dashboard Live not working over HTTP#3032
lahma merged 2 commits into
3.xfrom
dashboard-live

Conversation

@lahma

@lahma lahma commented Apr 11, 2026

Copy link
Copy Markdown
Member

Summary

  • Skip the SignalR negotiate POST by using WebSocket transport directly with SkipNegotiation, avoiding antiforgery middleware rejecting the server-to-self connection over HTTP
  • Disable antiforgery validation on the hub endpoint as defense-in-depth
  • Remove WithAutomaticReconnect() (incompatible with SkipNegotiation; the existing RunConnectionMonitorAsync already handles reconnection)

Fixes #3029

Test plan

  • Run the example app over HTTP only, navigate to /quartz/live, confirm connection shows "Connected" and live events appear
  • Run over HTTPS, confirm no regression

🤖 Generated with Claude Code

Skip the SignalR negotiate POST by using WebSocket transport directly
with SkipNegotiation, which avoids antiforgery middleware rejecting the
server-to-self connection over HTTP. Also disable antiforgery on the hub
endpoint as defense-in-depth.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@lahma lahma added the port-main Requires porting to main branch label Apr 11, 2026
The DisableAntiforgery() on the hub endpoint is sufficient to fix the
HTTP issue. Reverting SkipNegotiation + WebSockets-only to preserve
transport negotiation and fallback for environments where WebSockets
may be unavailable.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@sonarqubecloud

Copy link
Copy Markdown

@lahma
lahma merged commit 239b1e4 into 3.x Apr 11, 2026
16 checks passed
@lahma
lahma deleted the dashboard-live branch April 11, 2026 07:12
@lahma lahma removed the port-main Requires porting to main branch label Apr 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant