414 Request-URI Too Large even after changing MB_JETTY_REQUEST_HEADER_SIZE

Problem: I'm using Metabase embedded with locked parameters. When the list of parameters is super large, the url (src of the iframe) is huge, (8600 characters) and I get a "414 Request-URI Too Large" error.

What have I tried:

  • I set MB_JETTY_REQUEST_HEADER_SIZE=100000. In the logs, I can see the following:
[c0b46dc9-7b8f-4dbc-b2bb-91405eb99731] 2023-04-05T17:53:44-03:00 INFO metabase.server Launching Embedded Jetty Webserver with config: 
 {:port 3000, :host "0.0.0.0", :request-header-size 100000}
  • I made a POST request to the url instead of a GET request. Same problem.

  • When the number of parameters is small, it works normally.

Diagnostic info:

{
  "browser-info": {
    "language": "en-US",
    "platform": "Win32",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0",
    "vendor": ""
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.18+10",
    "java.vendor": "Eclipse Adoptium",
    "java.vendor.url": "https://adoptium.net/",
    "java.version": "11.0.18",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.18+10",
    "os.name": "Linux",
    "os.version": "4.14.305-227.531.amzn2.x86_64",
    "user.language": "en",
    "user.timezone": "GMT"
  },
  "metabase-info": {
    "databases": [
      "sqlserver",
      "redshift",
      "mysql",
      "h2"
    ],
    "hosting-env": "unknown",
    "application-database": "postgres",
    "application-database-details": {
      "database": {
        "name": "PostgreSQL",
        "version": "13.7"
      },
      "jdbc-driver": {
        "name": "PostgreSQL JDBC Driver",
        "version": "42.5.1"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2023-03-28",
      "tag": "v0.46.0",
      "branch": "release-x.46.x",
      "hash": "0ca7df3"
    },
    "settings": {
      "report-timezone": "Etc/GMT+0"
    }
  }
}

Is there anything else I can try?

this is weird, as the env var should work without any problem. Can you increase it even further just to test?

Curious, did this ever get resolved? We're having the same issue with an embedded dashboard when we are passing a long list of locations to our locked parameter (we allow our customers to filter their embedded dashboard by location).

so there are limits that you can't go through... and the only way you can make this happen now is to reduce the number of locations Parameters in the body rather than on the body of the JWT · Issue #47486 · metabase/metabase · GitHub