Skip to content

Commit f850c9e

Browse files
committed
Handle error in resolve_type
1 parent f999522 commit f850c9e

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

lib/graphql/execution/interpreter/runtime.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,17 @@ def continue_field(value, owner_type, field, current_type, ast_node, next_select
587587
set_result(selection_result, result_name, r, false, is_non_null)
588588
r
589589
when "UNION", "INTERFACE"
590-
resolved_type_or_lazy = resolve_type(current_type, value)
590+
resolved_type_or_lazy = begin
591+
resolve_type(current_type, value)
592+
rescue GraphQL::ExecutionError, GraphQL::UnauthorizedError => ex_err
593+
return continue_value(ex_err, field, is_non_null, ast_node, result_name, selection_result)
594+
rescue StandardError => err
595+
begin
596+
query.handle_or_reraise(err)
597+
rescue GraphQL::ExecutionError => ex_err
598+
return continue_value(ex_err, field, is_non_null, ast_node, result_name, selection_result)
599+
end
600+
end
591601
after_lazy(resolved_type_or_lazy, ast_node: ast_node, field: field, owner_object: owner_object, arguments: arguments, trace: false, result_name: result_name, result: selection_result, runtime_state: runtime_state) do |resolved_type_result, runtime_state|
592602
if resolved_type_result.is_a?(Array) && resolved_type_result.length == 2
593603
resolved_type, resolved_value = resolved_type_result

0 commit comments

Comments
 (0)