Skip to content

v2.3.4-beta

Choose a tag to compare

@uesleibros uesleibros released this 07 May 01:29
· 218 commits to main since this release
f9da149

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 in TLSDecrypt where a graceful TLS session termination by the server (sending a close_notify alert) caused Schannel to return SEC_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 a close_notify, Wasabi would attempt to send queued data (or pings) to a dead TCP socket, resulting in a local WSAECONNABORTED (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 TLSDecrypt routine now intercepts SEC_I_CONTEXT_EXPIRED, gracefully sets the internal connection state to STATE_CLOSED, and silently delegates the flow to the AutoReconnect engine without throwing false-positive UI or log errors.
  • Impact: AutoReconnect now works flawlessly on server-initiated disconnects, preventing the cascading ERR 15 -> ERR 10 failure loop.