@@ -145,18 +145,8 @@ async def create_source_event_stream(
145
145
return ExecutionResult (data = None , errors = context )
146
146
147
147
try :
148
- event_stream = await execute_subscription (context )
149
-
150
- # Assert field returned an event stream, otherwise yield an error.
151
- if not isinstance (event_stream , AsyncIterable ):
152
- raise TypeError (
153
- "Subscription field must return AsyncIterable."
154
- f" Received: { inspect (event_stream )} ."
155
- )
156
- return event_stream
157
-
148
+ return await execute_subscription (context )
158
149
except GraphQLError as error :
159
- # Report it as an ExecutionResult, containing only errors and no data.
160
150
return ExecutionResult (data = None , errors = [error ])
161
151
162
152
@@ -207,6 +197,13 @@ async def execute_subscription(context: ExecutionContext) -> AsyncIterable[Any]:
207
197
if isinstance (event_stream , Exception ):
208
198
raise event_stream
209
199
200
+ # Assert field returned an event stream, otherwise yield an error.
201
+ if not isinstance (event_stream , AsyncIterable ):
202
+ raise GraphQLError (
203
+ "Subscription field must return AsyncIterable."
204
+ f" Received: { inspect (event_stream )} ."
205
+ )
206
+
210
207
return event_stream
211
208
except Exception as error :
212
209
raise located_error (error , field_nodes , path .as_list ())
0 commit comments