ankane/searchkick · error · TypeError
expected Searchkick::Script
Error message
expected Searchkick::Script
What it means
Error "expected Searchkick::Script" thrown in ankane/searchkick.
Source
Thrown at lib/searchkick/query.rb:1124
def where_filters(where)
filters = []
(where || {}).each do |field, value|
field = :_id if field.to_s == "id"
# update smart aggs when adding new symbol
if field == :or
value.each do |or_clause|
filters << {bool: {should: or_clause.map { |or_statement| {bool: {filter: where_filters(or_statement)}} }}}
end
elsif field == :_or
filters << {bool: {should: value.map { |or_statement| {bool: {filter: where_filters(or_statement)}} }}}
elsif field == :_not
filters << {bool: {must_not: where_filters(value)}}
elsif field == :_and
filters << {bool: {must: value.map { |or_statement| {bool: {filter: where_filters(or_statement)}} }}}
elsif field == :_script
unless value.is_a?(Script)
raise TypeError, "expected Searchkick::Script"
end
filters << {script: {script: {source: value.source, lang: value.lang, params: value.params}}}
else
# expand ranges
if value.is_a?(Range)
value = expand_range(value)
end
value = {in: value} if value.is_a?(Array)
if value.is_a?(Hash)
value.each do |op, op_value|
case op
when :within, :bottom_right, :bottom_left
# do nothing
when :near
filters << {View on GitHub (pinned to 93e901a75b)
When it happens
Trigger: Thrown at lib/searchkick/query.rb:1124 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ankane/searchkick@93e901a75b (2026-08-21).
Data as JSON: /api/errors/b6765cb167e02172.
Report an issue: GitHub.