NoMethodError undefined method `key?'
Sentry error: https://new-sentry.gitlab.net/organizations/gitlab/issues/675472
NoMethodError: undefined method `key?' for "":String
return unless options[:include_missing] || passed_params.key?(declared_param)
^^^^^
from grape (2.0.0) lib/grape/dsl/inside_route.rb:78:in `declared_hash_attr'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:53:in `block in declared_hash'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:50:in `each'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:50:in `each_with_object'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:50:in `declared_hash'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:37:in `declared'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:45:in `block in declared_array'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:44:in `map'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:44:in `declared_array'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:35:in `declared'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:72:in `block (2 levels) in declared_hash_attr'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:95:in `handle_passed_param'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:71:in `block in declared_hash_attr'
from grape (2.0.0) lib/grape/dsl/inside_route.rb:60:in `each_pair'
Problem
We use type: Array that doesn't verify the elements format. type: Array[JSON] ensures that user provided a list of objects. https://github.com/ruby-grape/grape?tab=readme-ov-file#first-class-json-types