From 09effc91870e18afdef03d7dceebd7bdb6c79e2f Mon Sep 17 00:00:00 2001 From: Object905 Date: Sat, 28 Dec 2024 12:11:40 +0300 Subject: [PATCH] fix: make payload:null handling in connection_init consistent between protocols --- .../subscriptions/protocols/graphql_transport_ws/handlers.py | 3 ++- strawberry/subscriptions/protocols/graphql_ws/handlers.py | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py b/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py index b4cdc9d4e8..42971cddf8 100644 --- a/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +++ b/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py @@ -167,7 +167,8 @@ async def handle_connection_init(self, message: ConnectionInitMessage) -> None: self.connection_init_timeout_task.cancel() payload = message.get("payload", {}) - + if payload is None: + payload = {} if not isinstance(payload, dict): await self.websocket.close( code=4400, reason="Invalid connection init payload" diff --git a/strawberry/subscriptions/protocols/graphql_ws/handlers.py b/strawberry/subscriptions/protocols/graphql_ws/handlers.py index 352d5c5f08..78f77a998b 100644 --- a/strawberry/subscriptions/protocols/graphql_ws/handlers.py +++ b/strawberry/subscriptions/protocols/graphql_ws/handlers.py @@ -97,7 +97,9 @@ async def handle_message( async def handle_connection_init(self, message: ConnectionInitMessage) -> None: payload = message.get("payload") - if payload is not None and not isinstance(payload, dict): + if payload is None: + payload = {} + if not isinstance(payload, dict): await self.send_message({"type": "connection_error"}) await self.websocket.close(code=1000, reason="") return