v2.3.4-beta
Wasabi v2.3.4-beta
This update addresses a critical edge case in the Schannel/TLS engine where graceful server disconnections were being misidentified as fatal cryptographic errors, improving the overall stability of long-lived connections (such as Discord Gateway or MQTT brokers).
Bug Fixes
- Fixed Phantom Decryption Errors (
ERR 15): Resolved an issue inTLSDecryptwhere a graceful TLS session termination by the server (sending aclose_notifyalert) caused Schannel to returnSEC_I_CONTEXT_EXPIRED. Previously, Wasabi treated this normal teardown as a decryption failure. - Fixed Zombie Socket Writes (
ERR 10): Because the connection state wasn't properly closed after aclose_notify, Wasabi would attempt to send queued data (or pings) to a dead TCP socket, resulting in a localWSAECONNABORTED(10053) crash. This has been completely eliminated.
Technical Details & Under the Hood
- Added the
SEC_I_CONTEXT_EXPIRED(0x90317) constant to the core Schannel definitions. - The
TLSDecryptroutine now interceptsSEC_I_CONTEXT_EXPIRED, gracefully sets the internal connection state toSTATE_CLOSED, and silently delegates the flow to theAutoReconnectengine without throwing false-positive UI or log errors. - Impact:
AutoReconnectnow works flawlessly on server-initiated disconnects, preventing the cascadingERR 15->ERR 10failure loop.