@@ -74,6 +74,10 @@ def call
7474
7575 result = if is_authed
7676 Schema ::Validator . validate! ( self . class . validators , object , context , @prepared_arguments , as : @field )
77+ if q . subscription? && @field . owner == context . schema . subscription
78+ # This needs to use arguments without `loads:`
79+ @original_arguments = @field_resolve_step . coerce_arguments ( @field , @field_resolve_step . ast_node . arguments , false )
80+ end
7781 call_resolve ( @prepared_arguments )
7882 elsif new_return_value . nil?
7983 err = UnauthorizedFieldError . new ( object : object , type : @field_resolve_step . parent_type , context : context , field : @field )
@@ -83,12 +87,6 @@ def call
8387 end
8488 q = context . query
8589 q . current_trace . end_execute_field ( field , @prepared_arguments , trace_objs , q , [ result ] )
86- if q . subscription? && @field . owner == context . schema . subscription && !@subscription_written
87- # TODO unify this -- do it in a single pass
88- @original_arguments = @field_resolve_step . coerce_arguments ( @field , @field_resolve_step . ast_node . arguments , false )
89- Subscriptions ::DefaultSubscriptionResolveExtension . write_subscription ( @field , result , @original_arguments , context )
90- @subscription_written = true
91- end
9290 exec_result [ exec_index ] = result
9391 rescue RuntimeError => err
9492 exec_result [ exec_index ] = err
0 commit comments