Cannot run long query with filter variables

I recently upgrade the Metabase version from 0.44 to 0.47.9, but after that all queries, which using filter variables, returns error.

For example, I have a query with 18287 chars. It contains optional filters in the where condition like [[ AND lower(city) = lower({{city}})]]. I can get result without define the city, but once I use the filter like city = "Somewhere". It returns error below.

But once I reduce the size by removing many case ... when statements to 4988 chars, it can search with the city filter.

Is there any way to solve the issue and support the long query as before?

The Diagnostic Info is:

{
  "browser-info": {
    "language": "en-US",
    "platform": "MacIntel",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "vendor": "Google Inc."
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.16+8-LTS",
    "java.vendor": "Red Hat, Inc.",
    "java.vendor.url": "https://www.redhat.com/",
    "java.version": "11.0.16",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.16+8-LTS",
    "os.name": "Linux",
    "os.version": "4.14.328-248.540.amzn2.x86_64",
    "user.language": "en",
    "user.timezone": "UTC"
  },
  "metabase-info": {
    "databases": [
      "h2",
      "mysql",
      "presto-jdbc",
      "mongo"
    ],
    "hosting-env": "unknown",
    "application-database": "mysql",
    "application-database-details": {
      "database": {
        "name": "MySQL",
        "version": "8.0.33"
      },
      "jdbc-driver": {
        "name": "MariaDB Connector/J",
        "version": "2.7.6"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2023-12-01",
      "tag": "v0.47.9",
      "branch": "?",
      "hash": "d05b06e"
    },
    "settings": {
      "report-timezone": "UTC"
    }
  }
}

The related error log is:

[250aea9d-fb1e-4f2c-ba12-4848c4a56a4a] 2023-12-19T18:41:51+08:00 DEBUG metabase.server.middleware.log POST /api/card/1481/query 202 [ASYNC: completed] 1.4 s (8 DB calls) App DB connections: 0/10 Jetty threads: 3/50 (6 idle, 0 queued) (70 total active threads) Queries in flight: 0 (0 queued); presto-jdbc DB 13 connections: 0/2 (0 threads blocked)
[250aea9d-fb1e-4f2c-ba12-4848c4a56a4a] 2023-12-19T18:41:56+08:00 ERROR metabase.query-processor.middleware.catch-exceptions Error processing query: Error executing query
{:database_id 13,
 :started_at #t "2023-12-19T10:41:55.792320Z[UTC]",
 :via
 [{:status :failed,
   :class java.sql.SQLException,
   :error "Error executing query",
   :stacktrace
   ["com.facebook.presto.jdbc.PrestoStatement.internalExecute(PrestoStatement.java:307)"
    "com.facebook.presto.jdbc.PrestoStatement.execute(PrestoStatement.java:230)"
    "com.facebook.presto.jdbc.PrestoPreparedStatement.<init>(PrestoPreparedStatement.java:85)"
    "com.facebook.presto.jdbc.PrestoConnection.prepareStatement(PrestoConnection.java:142)"
    "com.facebook.presto.jdbc.PrestoConnection.prepareStatement(PrestoConnection.java:335)"
    "com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:385)"
    "--> driver.presto_jdbc$fn__125986.invokeStatic(presto_jdbc.clj:622)"
    "driver.presto_jdbc$fn__125986.invoke(presto_jdbc.clj:618)"
    "driver.sql_jdbc.execute$prepared_statement_STAR_$fn__81277.invoke(execute.clj:528)"
    "driver.sql_jdbc.execute$prepared_statement_STAR_.invokeStatic(execute.clj:527)"
    "driver.sql_jdbc.execute$prepared_statement_STAR_.invoke(execute.clj:524)"
    "driver.sql_jdbc.execute$statement_or_prepared_statement.invokeStatic(execute.clj:550)"
    "driver.sql_jdbc.execute$statement_or_prepared_statement.invoke(execute.clj:545)"
    "driver.sql_jdbc.execute$execute_reducible_query$fn__81362.invoke(execute.clj:679)"
    "driver.presto_jdbc$fn__126004$fn__126005.invoke(presto_jdbc.clj:695)"
    "driver.sql_jdbc.execute$fn__81131$do_with_resolved_connection__81132.invoke(execute.clj:333)"
    "driver.presto_jdbc$fn__126004.invokeStatic(presto_jdbc.clj:688)"
    "driver.presto_jdbc$fn__126004.invoke(presto_jdbc.clj:675)"
    "driver.presto_jdbc$fn__126004.invokeStatic(presto_jdbc.clj:682)"
    "driver.presto_jdbc$fn__126004.invoke(presto_jdbc.clj:675)"
    "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:674)"
    "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:663)"
    "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:671)"
    "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:663)"
    "driver.sql_jdbc$fn__116278.invokeStatic(sql_jdbc.clj:72)"
    "driver.sql_jdbc$fn__116278.invoke(sql_jdbc.clj:70)"
    "query_processor.context$executef.invokeStatic(context.clj:60)"
    "query_processor.context$executef.invoke(context.clj:49)"
    "query_processor.context.default$default_runf.invokeStatic(default.clj:68)"
    "query_processor.context.default$default_runf.invoke(default.clj:66)"
    "query_processor.context$runf.invokeStatic(context.clj:46)"
    "query_processor.context$runf.invoke(context.clj:40)"
    "query_processor.reducible$identity_qp.invokeStatic(reducible.clj:15)"
    "query_processor.reducible$identity_qp.invoke(reducible.clj:12)"
    "query_processor.middleware.cache$maybe_return_cached_results$maybe_return_cached_results_STAR___77375.invoke(cache.clj:224)"
    "query_processor.middleware.permissions$check_query_permissions$fn__72958.invoke(permissions.clj:126)"
    "query_processor.middleware.mbql_to_native$mbql__GT_native$fn__76500.invoke(mbql_to_native.clj:24)"
    "query_processor$fn__78608$combined_post_process__78613$combined_post_process_STAR___78614.invoke(query_processor.clj:260)"
    "query_processor$fn__78608$combined_pre_process__78609$combined_pre_process_STAR___78610.invoke(query_processor.clj:257)"
    "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__77286$fn__77291.invoke(resolve_database_and_driver.clj:36)"
    "driver$do_with_driver.invokeStatic(driver.clj:93)"
    "driver$do_with_driver.invoke(driver.clj:88)"
    "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__77286.invoke(resolve_database_and_driver.clj:35)"
    "query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__73268.invoke(fetch_source_query.clj:316)"
    "query_processor.middleware.store$initialize_store$fn__73449$fn__73450.invoke(store.clj:12)"
    "query_processor.store$do_with_store.invokeStatic(store.clj:56)"
    "query_processor.store$do_with_store.invoke(store.clj:50)"
    "query_processor.middleware.store$initialize_store$fn__73449.invoke(store.clj:11)"
    "query_processor.middleware.normalize_query$normalize$fn__77582.invoke(normalize_query.clj:36)"
    "query_processor.middleware.constraints$add_default_userland_constraints$fn__74976.invoke(constraints.clj:54)"
    "query_processor.middleware.process_userland_query$process_userland_query$fn__77511.invoke(process_userland_query.clj:151)"
    "query_processor.middleware.catch_exceptions$catch_exceptions$fn__77908.invoke(catch_exceptions.clj:171)"
    "query_processor.reducible$async_qp$qp_STAR___67102$thunk__67104.invoke(reducible.clj:103)"
    "query_processor.reducible$async_qp$qp_STAR___67102$fn__67106.invoke(reducible.clj:108)"],
   :state nil}
  {:status :failed,
   :class clojure.lang.ExceptionInfo,
   :error "Error preparing statement: Error executing query",
   :stacktrace
   ["--> driver.sql_jdbc.execute$prepared_statement_STAR_$fn__81277.invoke(execute.clj:530)"
    "driver.sql_jdbc.execute$prepared_statement_STAR_.invokeStatic(execute.clj:527)"
    "driver.sql_jdbc.execute$prepared_statement_STAR_.invoke(execute.clj:524)"
    "driver.sql_jdbc.execute$statement_or_prepared_statement.invokeStatic(execute.clj:550)"
    "driver.sql_jdbc.execute$statement_or_prepared_statement.invoke(execute.clj:545)"
    "driver.sql_jdbc.execute$execute_reducible_query$fn__81362.invoke(execute.clj:679)"
    "driver.presto_jdbc$fn__126004$fn__126005.invoke(presto_jdbc.clj:695)"
    "driver.sql_jdbc.execute$fn__81131$do_with_resolved_connection__81132.invoke(execute.clj:333)"
    "driver.presto_jdbc$fn__126004.invokeStatic(presto_jdbc.clj:688)"
    "driver.presto_jdbc$fn__126004.invoke(presto_jdbc.clj:675)"
    "driver.presto_jdbc$fn__126004.invokeStatic(presto_jdbc.clj:682)"
    "driver.presto_jdbc$fn__126004.invoke(presto_jdbc.clj:675)"
    "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:674)"
    "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:663)"
    "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:671)"
    "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:663)"
    "driver.sql_jdbc$fn__116278.invokeStatic(sql_jdbc.clj:72)"
    "driver.sql_jdbc$fn__116278.invoke(sql_jdbc.clj:70)"
    "query_processor.context$executef.invokeStatic(context.clj:60)"
    "query_processor.context$executef.invoke(context.clj:49)"
    "query_processor.context.default$default_runf.invokeStatic(default.clj:68)"
    "query_processor.context.default$default_runf.invoke(default.clj:66)"
    "query_processor.context$runf.invokeStatic(context.clj:46)"
    "query_processor.context$runf.invoke(context.clj:40)"
    "query_processor.reducible$identity_qp.invokeStatic(reducible.clj:15)"
    "query_processor.reducible$identity_qp.invoke(reducible.clj:12)"
    "query_processor.middleware.cache$maybe_return_cached_results$maybe_return_cached_results_STAR___77375.invoke(cache.clj:224)"
    "query_processor.middleware.permissions$check_query_permissions$fn__72958.invoke(permissions.clj:126)"
    "query_processor.middleware.mbql_to_native$mbql__GT_native$fn__76500.invoke(mbql_to_native.clj:24)"
    "query_processor$fn__78608$combined_post_process__78613$combined_post_process_STAR___78614.invoke(query_processor.clj:260)"
    "query_processor$fn__78608$combined_pre_process__78609$combined_pre_process_STAR___78610.invoke(query_processor.clj:257)"
    "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__77286$fn__77291.invoke(resolve_database_and_driver.clj:36)"
    "driver$do_with_driver.invokeStatic(driver.clj:93)"
    "driver$do_with_driver.invoke(driver.clj:88)"
    "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__77286.invoke(resolve_database_and_driver.clj:35)"
    "query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__73268.invoke(fetch_source_query.clj:316)"
    "query_processor.middleware.store$initialize_store$fn__73449$fn__73450.invoke(store.clj:12)"
    "query_processor.store$do_with_store.invokeStatic(store.clj:56)"
    "query_processor.store$do_with_store.invoke(store.clj:50)"
    "query_processor.middleware.store$initialize_store$fn__73449.invoke(store.clj:11)"
    "query_processor.middleware.normalize_query$normalize$fn__77582.invoke(normalize_query.clj:36)"
    "query_processor.middleware.constraints$add_default_userland_constraints$fn__74976.invoke(constraints.clj:54)"
    "query_processor.middleware.process_userland_query$process_userland_query$fn__77511.invoke(process_userland_query.clj:151)"
    "query_processor.middleware.catch_exceptions$catch_exceptions$fn__77908.invoke(catch_exceptions.clj:171)"
    "query_processor.reducible$async_qp$qp_STAR___67102$thunk__67104.invoke(reducible.clj:103)"
    "query_processor.reducible$async_qp$qp_STAR___67102$fn__67106.invoke(reducible.clj:108)"],
   :error_type :driver,
   :ex-data
   {:driver :presto-jdbc,
    :type :driver,
    :sql
    // Hide
    :params
    // Hide
    ,
 :error_type :driver,
 :json_query
 {:constraints {:max-results 10000, :max-results-bare-rows 2000},
  :type :native,
  :middleware {:js-int-to-string? true, :ignore-cached-results? true, :process-viz-settings? false},
  :native
  {:template-tags
   :collection "account_auth",
   :query
  :viz-settings nil,
  :database 13,
  :parameters
  [{:id "87f20810-d4eb-89c9-42c4-09ebf5538f86",
    :type "category",
    :value "",
    :target ["variable" ["template-tag" "city"]]}],
  :async? true,
  :cache-ttl nil},
 :status :failed,
 :class java.lang.RuntimeException,
 :stacktrace
 ["com.facebook.presto.jdbc.internal.client.StatementClientV1.requestFailedException(StatementClientV1.java:497)"
  "com.facebook.presto.jdbc.internal.client.StatementClientV1.advance(StatementClientV1.java:420)"
  "com.facebook.presto.jdbc.PrestoResultSet.getColumns(PrestoResultSet.java:1743)"
  "com.facebook.presto.jdbc.PrestoResultSet.<init>(PrestoResultSet.java:121)"
  "com.facebook.presto.jdbc.PrestoStatement.internalExecute(PrestoStatement.java:272)"
  "com.facebook.presto.jdbc.PrestoStatement.execute(PrestoStatement.java:230)"
  "com.facebook.presto.jdbc.PrestoPreparedStatement.<init>(PrestoPreparedStatement.java:85)"
  "com.facebook.presto.jdbc.PrestoConnection.prepareStatement(PrestoConnection.java:142)"
  "com.facebook.presto.jdbc.PrestoConnection.prepareStatement(PrestoConnection.java:335)"
  "com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:385)"
  "--> driver.presto_jdbc$fn__125986.invokeStatic(presto_jdbc.clj:622)"
  "driver.presto_jdbc$fn__125986.invoke(presto_jdbc.clj:618)"
  "driver.sql_jdbc.execute$prepared_statement_STAR_$fn__81277.invoke(execute.clj:528)"
  "driver.sql_jdbc.execute$prepared_statement_STAR_.invokeStatic(execute.clj:527)"
  "driver.sql_jdbc.execute$prepared_statement_STAR_.invoke(execute.clj:524)"
  "driver.sql_jdbc.execute$statement_or_prepared_statement.invokeStatic(execute.clj:550)"
  "driver.sql_jdbc.execute$statement_or_prepared_statement.invoke(execute.clj:545)"
  "driver.sql_jdbc.execute$execute_reducible_query$fn__81362.invoke(execute.clj:679)"
  "driver.presto_jdbc$fn__126004$fn__126005.invoke(presto_jdbc.clj:695)"
  "driver.sql_jdbc.execute$fn__81131$do_with_resolved_connection__81132.invoke(execute.clj:333)"
  "driver.presto_jdbc$fn__126004.invokeStatic(presto_jdbc.clj:688)"
  "driver.presto_jdbc$fn__126004.invoke(presto_jdbc.clj:675)"
  "driver.presto_jdbc$fn__126004.invokeStatic(presto_jdbc.clj:682)"
  "driver.presto_jdbc$fn__126004.invoke(presto_jdbc.clj:675)"
  "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:674)"
  "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:663)"
  "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:671)"
  "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:663)"
  "driver.sql_jdbc$fn__116278.invokeStatic(sql_jdbc.clj:72)"
  "driver.sql_jdbc$fn__116278.invoke(sql_jdbc.clj:70)"
  "query_processor.context$executef.invokeStatic(context.clj:60)"
  "query_processor.context$executef.invoke(context.clj:49)"
  "query_processor.context.default$default_runf.invokeStatic(default.clj:68)"
  "query_processor.context.default$default_runf.invoke(default.clj:66)"
  "query_processor.context$runf.invokeStatic(context.clj:46)"
  "query_processor.context$runf.invoke(context.clj:40)"
  "query_processor.reducible$identity_qp.invokeStatic(reducible.clj:15)"
  "query_processor.reducible$identity_qp.invoke(reducible.clj:12)"
  "query_processor.middleware.cache$maybe_return_cached_results$maybe_return_cached_results_STAR___77375.invoke(cache.clj:224)"
  "query_processor.middleware.permissions$check_query_permissions$fn__72958.invoke(permissions.clj:126)"
  "query_processor.middleware.mbql_to_native$mbql__GT_native$fn__76500.invoke(mbql_to_native.clj:24)"
  "query_processor$fn__78608$combined_post_process__78613$combined_post_process_STAR___78614.invoke(query_processor.clj:260)"
  "query_processor$fn__78608$combined_pre_process__78609$combined_pre_process_STAR___78610.invoke(query_processor.clj:257)"
  "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__77286$fn__77291.invoke(resolve_database_and_driver.clj:36)"
  "driver$do_with_driver.invokeStatic(driver.clj:93)"
  "driver$do_with_driver.invoke(driver.clj:88)"
  "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__77286.invoke(resolve_database_and_driver.clj:35)"
  "query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__73268.invoke(fetch_source_query.clj:316)"
  "query_processor.middleware.store$initialize_store$fn__73449$fn__73450.invoke(store.clj:12)"
  "query_processor.store$do_with_store.invokeStatic(store.clj:56)"
  "query_processor.store$do_with_store.invoke(store.clj:50)"
  "query_processor.middleware.store$initialize_store$fn__73449.invoke(store.clj:11)"
  "query_processor.middleware.normalize_query$normalize$fn__77582.invoke(normalize_query.clj:36)"
  "query_processor.middleware.constraints$add_default_userland_constraints$fn__74976.invoke(constraints.clj:54)"
  "query_processor.middleware.process_userland_query$process_userland_query$fn__77511.invoke(process_userland_query.clj:151)"
  "query_processor.middleware.catch_exceptions$catch_exceptions$fn__77908.invoke(catch_exceptions.clj:171)"
  "query_processor.reducible$async_qp$qp_STAR___67102$thunk__67104.invoke(reducible.clj:103)"
  "query_processor.reducible$async_qp$qp_STAR___67102$fn__67106.invoke(reducible.clj:108)"],
 :card_id 1481,
 :context :question,
 :error "Error executing query",
 :row_count 0,
 :running_time 0,
 :data {:rows [], :cols []}}

are you using some sort of gateway in the middle? we have another customer that reported this before

Hi @Luiggi , what do you mean gateway? does it for the metabase or the db connection?

I think we don't use any gateway. We just run it in one AWS EC2 and connect to the RDS.

Will downgrade helps? If it does, what is the version we could use?