Skip to content

Commit 059b32b

Browse files
committed
fix error handling in GraphQLLocalExecutionClient.ExecuteSubscriptionAsync (closes #236)
1 parent fc406df commit 059b32b

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/GraphQL.Client.LocalExecution/GraphQLLocalExecutionClient.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,11 @@ private async Task<GraphQLResponse<TResponse>> ExecuteQueryAsync<TResponse>(Grap
7979
private async Task<IObservable<GraphQLResponse<TResponse>>> ExecuteSubscriptionAsync<TResponse>(GraphQLRequest request, CancellationToken cancellationToken = default)
8080
{
8181
var result = await ExecuteAsync(request, cancellationToken);
82-
return ((SubscriptionExecutionResult)result).Streams?.Values.SingleOrDefault()?
83-
.SelectMany(executionResult => Observable.FromAsync(token => ExecutionResultToGraphQLResponse<TResponse>(executionResult, token)));
82+
var stream = ((SubscriptionExecutionResult)result).Streams?.Values.SingleOrDefault();
83+
84+
return stream == null
85+
? Observable.Throw<GraphQLResponse<TResponse>>(new InvalidOperationException("the GraphQL execution did not return an observable"))
86+
: stream.SelectMany(executionResult => Observable.FromAsync(token => ExecutionResultToGraphQLResponse<TResponse>(executionResult, token)));
8487
}
8588

8689
private async Task<ExecutionResult> ExecuteAsync(GraphQLRequest request, CancellationToken cancellationToken = default)

0 commit comments

Comments
 (0)