Windows: Update checks fail TLS handshake for Git hosts (SNI-dependent) #120
Labels
No labels
area/build
area/install
area/saves
area/tooling
area/ui
area/updates
ci: approved
good first issue
gpu/amd
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
platform/linux
platform/steam-deck
platform/windows
priority
critical
priority
high
priority
low
risk
high
risk
low
risk
medium
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
ci: approved
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/LongshotLauncher#120
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What happened
Longshot Launcher update checks stopped working on November 15, 2026, despite previously working with v1.0.0-rc.3.
The issue began while still running RC3. After manually updating to v1.0.0-rc.7 and then nightly-90-b1fd0550, the update check continued failing, but the newer launcher provided more detailed diagnostics.
Both
git-cdn.magicbean.devandgit.magicbean.devresolve correctly and accept TCP connections on port 443, but the TLS handshake fails before any HTTP response is received.Launcher error:
This prevents the launcher from determining available Longshot and launcher updates.
Steps to reproduce
git-cdn.magicbean.dev, then falls back togit.magicbean.dev.Frequency: Consistently reproducible since November 15, 2026.
Expected behavior
The launcher successfully establishes an HTTPS connection, retrieves the release metadata, and determines whether updates are available.
Actual behavior
DNS resolution and TCP connectivity succeed, but TLS negotiation fails for both Git hostnames.
Environment
Network and TLS diagnostics
1. DNS and connectivity
magicbean.devsucceed using Windows Schannel.2. Hostname-specific failure
Using curl's
--resolveoption to test different hostnames against the same Cloudflare IP addresses:The failure follows the hostname rather than the IP address.
3. OpenSSL handshake inspection
An OpenSSL TLS 1.2 handshake to
104.21.55.71:443, using SNIgit.magicbean.dev, receives invalid response data immediately after ClientHello:The response consists of 256 consecutive
0xFFbytes instead of valid TLS records.OpenSSL reports:
Changing only the SNI hostname to
magicbean.dev, while retaining the same IP address and TLS version, successfully negotiates TLS 1.2 and verifies the certificate.This suggests hostname-dependent handling of the TLS ClientHello.
4. Firefox ECH testing
Firefox can successfully retrieve the release API JSON.
Testing Firefox with HTTP/3 disabled:
The failure therefore appears dependent on ECH-related TLS behavior. This could indicate hostname-based traffic inspection/filtering or a difference in how the endpoint handles ClientHello messages.
5. External TLS compatibility
SSL Labs successfully assessed all four Cloudflare endpoints and confirmed:
This suggests the issue is not simply the absence of Windows 10-compatible protocols or cipher suites.
Additional context
The RC5 release notes also mention updates to connection error reporting (#75) and using the CDN first for release metadata (#76). These changes appear related to Git service availability, although it is not established whether they address the same underlying problem.
Possible areas to investigate
The available evidence suggests investigating:
The source of the invalid TLS response has not been identified. It could originate from an intermediary or from endpoint-side handling.
It would be useful to confirm whether the Cloudflare edge receives the failed ClientHello and whether similar reports exist from other Windows clients.
Impact
The launcher cannot check for game or launcher updates, even though the releases are accessible through Firefox.
A manual launcher update does not resolve the underlying connectivity failure.
Possibly related, for context:
I hit the same TLS error on a first build. The Build button stays disabled in v1.0.0-rc.7 and in the portable nightly-91-d79e1e4f. I tried both my usual connection and a phone hotspot, with the same result. The nightly reports Windows build 26300 (x64), .NET 10.0.15, and no proxy.
The nightly log shows DNS resolution and IPv6 TCP connections succeeding for both hosts. The release API on
git.magicbean.devreturns HTTP 200 after the CDN request fails. The launcher then hitsSecureConnectionError/AuthenticationException("Cannot determine the frame size or a corrupted frame was received") fetchingSHA256SUMSfrom the CDN. The fallback download throughgit.magicbean.devalso fails after connecting to the CDN.Opera GX on the same PC successfully downloads the exact file that fails in the launcher: https://git-cdn.magicbean.dev/MagicBeanDev/Longshot/releases/download/v3.0.0-rc.4/SHA256SUMS
From Shadow on Discord:
A further report from Longshot Launcher v1.0.0-rc.6: the Build screen says “git.magicbean.dev did not answer, so the version to build is not known. Try again” and reports “The secure connection to git.magicbean.dev failed… (Cannot determine the frame size or a corrupted frame was received)”. The Build button is disabled. No OS, network details, or launcher log supplied.