AWT Web (Blazor Server) – WebSocket / SignalR Troubleshooting Guide
AWT Web is built using Blazor Server and relies on a persistent SignalR connection over secure WebSockets (WSS).
If AWT Web appears frozen, delayed, or out of sync, this is almost always a connection, browser, firewall, extension, or session issue — not data lag.
There Is No “Data Lag” in AWT Web
AWT Web streams data in real time via a persistent SignalR circuit. It does not introduce artificial delay or platform-side data lag.
Market data is processed, aggregated, filtered, and calculated in the cloud, then streamed efficiently to your browser over a secure WebSocket connection. The system is designed to handle high-activity periods without overloading your device or creating client-side bottlenecks during heavy tick activity.
If performance issues occur, they are almost always related to connection, browser, or session factors — not the data engine itself.
Typical causes include:
- WebSocket interruption
- SignalR circuit drop
- Network instability or packet loss
- Firewall / proxy restrictions
- Browser extension interference
- Authentication or session expiration
How Blazor Server Works (Important)
- The browser maintains a persistent SignalR circuit to the server.
- All UI updates are synchronized over this connection.
- If the connection drops, the UI may freeze temporarily.
- If reconnection fails, a page reload (F5) is required.
- WebSockets (WSS) must be allowed by the network.
Why Blazor Server Is Sensitive to Extensions
Unlike static websites, Blazor Server applications maintain a live, stateful session (circuit). Any interruption in the WebSocket channel immediately affects UI responsiveness.
Privacy or security extensions can:
- Block WebSocket upgrade requests
- Strip required headers
- Modify HTTPS/WSS behavior
- Block JavaScript interop calls
- Interrupt persistent SignalR reconnection logic
Sticky Sessions (Session Affinity)
AWT Web uses sticky sessions (session affinity). This means your browser is routed to the same server instance for the duration of your session.
Session affinity is maintained using cookies. If those cookies become:
- Corrupted
- Expired
- Blocked by extensions
- Modified by security software
You may be routed to a different server instance mid-session, which can break the Blazor circuit and cause:
- SignalR reconnect loops
- WebSocket disconnects
- UI freeze or partial rendering
- Authentication errors (401 / 403)
In these cases, clearing site cookies and reloading the page often immediately resolves the issue.
Real-World Case: DuckDuckGo Causing WebSocket Failure
A confirmed WebSocket issue on a PC was resolved by:
- Disabling the DuckDuckGo Privacy Extension in Google Chrome
- Rebooting the PC
After removal and reboot, the SignalR connection stabilized immediately.
Even after disabling an extension, its background service worker or filtering component may remain active until the browser or system is fully restarted.
Important: Simply disabling an extension may not be enough. A full browser restart — or system reboot — may be required.
Clearing Cache & Resetting Cookies (Very Effective)
Because AWT Web is a Blazor Server application, it maintains authentication cookies and a persistent SignalR circuit. Corrupted cookies, expired sessions, or cached scripts can cause connection instability.
Hard Refresh (Clears Cache Only)
- Press Ctrl + Shift + F5
- This forces a full reload and clears cached files
- It does NOT remove cookies
Full Site Reset (Clears Cookies + Local Storage)
- Open AWT Web
- Press F12
- Go to the Application tab (Chrome/Edge)
- Click Clear Storage
-
Select:
- Cookies
- Local Storage
- Session Storage
- IndexedDB
- Click Clear site data
- Reload the page and log in again
Alternatively:
- Click the padlock icon next to the URL → Site settings
- Select Clear data
Why This Helps
- Resets authentication tokens
- Removes corrupted cookies
- Clears stale SignalR state
- Fixes session expiration loops
- Removes cached JS files after platform updates
After clearing site data, log in again and allow the page to fully initialize.
Recommended Production Environment
- Use updated Chrome, Edge, or Firefox
- Avoid aggressive privacy or script-blocking extensions
- Disable HTTPS inspection in antivirus/firewall software
- Allow WebSockets (WSS over HTTPS) on your network
- Avoid unstable VPN connections
- Use stable wired internet where possible
Quick Troubleshooting Checklist (In Order)
- Press F5 to reload AWT Web
- Press Ctrl + Shift + F5 (Hard refresh – clears cache)
- Clear site data (Cookies + Local Storage) and log in again
-
Try a different browser:
- Google Chrome
- Microsoft Edge
- Mozilla Firefox
- Disable all browser extensions (or test in Incognito / Private mode)
- Restart the browser completely
- Temporarily disable VPN
- Temporarily disable antivirus firewall (if safe to do so)
- If necessary, reboot the PC
- Run AWT Desktop alongside to confirm live data flow
- Run AWT Web on Mobile alongside to confirm live data flow
How to Check for Errors (Developer Tools)
- Open AWT Web
- Press F12
- Click the Console tab
- Click the Network tab → filter by WS
Look for:
-
WebSocket connection failed -
SignalR disconnected -
ERR_CONNECTION_CLOSED - Repeated reconnect attempts
- 401 / 403 authentication errors
- JavaScript interop errors
Common Root Causes
- Browser privacy extensions (DuckDuckGo, Ghostery, etc.)
- Corporate firewall blocking WebSockets
- Proxy removing WebSocket upgrade headers
- Antivirus HTTPS inspection
- Unstable WiFi or packet loss
- VPN instability
If the Issue Persists
Please provide support with the following:
- Screenshot of the Console tab (press F12)
- Screenshot of Network → WS (WebSocket view)
- Copy and paste the exact error messages shown in the Console
- List of installed browser extensions
- Whether VPN is enabled
- Whether antivirus or firewall software is enabled
To copy Console errors:
- Press F12
- Open the Console tab
- Right-click inside the Console
- Select Copy all messages (or manually select and copy)
- Paste into your support ticket
Providing the exact error text allows rapid diagnosis of:
- SignalR circuit failure
- WebSocket upgrade blocking
- Authentication/session expiration
- Sticky-session routing issues
- Firewall or proxy restrictions
- Extension interference