Description
Session.invalidate() clears this.ws before closing the socket. The close listener then treats that socket as superseded and returns without rejecting entries in pending, so an in-flight CDP call can remain pending forever.
Plugins
None
OpenCode version
main at e634099
Steps to reproduce
- Connect a
Session to a WebSocket endpoint.
- Start a CDP call that does not receive a response.
- Call
session.invalidate(error).
- Observe that the call never settles. It should reject with the invalidation error.
Screenshot and/or share link
No response
Operating System
macOS
Terminal
Codex desktop
Description
Session.invalidate()clearsthis.wsbefore closing the socket. The close listener then treats that socket as superseded and returns without rejecting entries inpending, so an in-flight CDP call can remain pending forever.Plugins
None
OpenCode version
main at e634099
Steps to reproduce
Sessionto a WebSocket endpoint.session.invalidate(error).Screenshot and/or share link
No response
Operating System
macOS
Terminal
Codex desktop