@@ -145,18 +145,8 @@ async def create_source_event_stream(
145145 return ExecutionResult (data = None , errors = context )
146146
147147 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 )
158149 except GraphQLError as error :
159- # Report it as an ExecutionResult, containing only errors and no data.
160150 return ExecutionResult (data = None , errors = [error ])
161151
162152
@@ -207,6 +197,13 @@ async def execute_subscription(context: ExecutionContext) -> AsyncIterable[Any]:
207197 if isinstance (event_stream , Exception ):
208198 raise event_stream
209199
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+
210207 return event_stream
211208 except Exception as error :
212209 raise located_error (error , field_nodes , path .as_list ())
0 commit comments