Public dashboard filter breaks charts

When using the dashboard privately, applying filters works great; however, with a public dashboard, when the filter is applied, we see the error on certain charts “There was a problem displaying this chart.”.
Some additional information:

  • The public dashboard works fine as long as this filter is not applied
  • This filter is a custom field filter on a Category property that has around 100 distinct values
  • Other filters such as date and country work fine
  • When inspecting the console logs all of the errors are 401 Unauthenticated errors
    {status: 401, data: "Unauthenticated", isCancelled: false}

Here’s the dashboard and an example filter that’s failing:
https://metabase.celo-networks-dev.org/public/dashboard/b0a27650-1d62-4645-81d7-26ff7546ff0d?date_filter=past2weeks~&validator_address=0xd5906766fa2C56700270312F8c9049BCa9939c11

Hi @codyborn
Please post “Diagnostic Info” from Admin > Troubleshooting.
And there should be detailed errors in the log - Admin > Troubleshooting > Logs.

Thanks for the tip @flamber.

Diagnostic Info

{
  "browser-info": {
    "language": "en-US",
    "platform": "MacIntel",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:82.0) Gecko/20100101 Firefox/82.0",
    "vendor": ""
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.7+10",
    "java.vendor": "AdoptOpenJDK",
    "java.vendor.url": "https://adoptopenjdk.net/",
    "java.version": "11.0.7",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.7+10",
    "os.name": "Linux",
    "os.version": "4.19.112+",
    "user.language": "en",
    "user.timezone": "UTC"
  },
  "metabase-info": {
    "databases": [
      "bigquery",
      "h2"
    ],
    "hosting-env": "unknown",
    "application-database": "postgres",
    "application-database-details": {
      "database": {
        "name": "PostgreSQL",
        "version": "11.7"
      },
      "jdbc-driver": {
        "name": "PostgreSQL JDBC Driver",
        "version": "42.2.8"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2020-12-03",
      "tag": "v0.37.3",
      "branch": "release-x.37.x",
      "hash": "2f1e783"
    },
    "settings": {
      "report-timezone": null
    }
  }
}

Error from Logs

 :context :public-dashboard,
 :error "Input to value-for-tag does not match schema: \n\n\t   [nil (named [nil {:field_ids disallowed-key, :hasOnlyFieldTargets disallowed-key}] params)]  \n\n",
 :row_count 0,
 :running_time 0,
 :ex-data
 {:type :schema.core/error,
  :value
  [{:id "14604c12-f40f-0304-50f8-e7d0bca49534", :name "issuer", :display-name "Issuer", :type :dimension, :dimension [:field-id 1737], :widget-type :category}
   [{:type :date/all-options, :target [:dimension [:template-tag "date"]], :value "past2weeks~", :name "Date Filter", :slug "date_filter", :id "f92655d2", :default "past2weeks~"}
    {:slug "validator_address",
     :name "Validator Address",
     :value ["0xACF0E11ff39EaD797475a1694FCca94A0e94784F"],
     :type :category,
     :id "a78dcdab",
     :field_ids [351 1690 1737 1708 269 2165],
     :target [:dimension [:template-tag "issuer"]],
     :hasOnlyFieldTargets true}]],
  :error [nil (named [nil {:field_ids disallowed-key, :hasOnlyFieldTargets disallowed-key}] params)]},
 :data {:rows [], :cols []}}

@codyborn Try removing the filters and add them again. I have seen this a couple of times, but I have not figured out how to reproduce.

Thanks, I’ve tried removing/re-adding from the query and from the dashboard filter with no luck. The filter is specified in the query as WHERE {{issuer}}. Is this still the correct syntax?

@codyborn The problem is hasOnlyFieldTargets has been stored with the filter on the dashboard (inside of the settings), but that should never have been there. The other people that have seen this issue, just removed the filter, saved the dashboard, then added the filter again - and then it worked.
I would love to figure out how to reproduce this with Sample Dataset, so we can create a proper fix for it.

Thanks @flamber. That did the trick. Previously I just disassociated the filter with the chart rather than removing it altogether.
In case it helps, here are some things that we did recently that may have caused it:

  1. Upgrade from 0.34.3 to 0.37.3
  2. Changed this filter for this property on the data models from “Search box” to “A list of all values”