Bug description
I already follow @dosu suggestion for making cross-filtering option be visible, but it still not visible for me.
Screenshots/recordings
Superset version
5.0.0
Python version
3.11
Node version
18 or greater
Browser
Chrome
Additional context
No response
Checklist
- [x] I have searched Superset docs and Slack and didn't find a solution to my problem.
- [x] I have searched the GitHub issue tracker and didn't find a similar bug report.
- [x] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.
Comment From: dosubot[bot]
In Superset 5.0.0, cross-filtering is enabled per dashboard, not globally. For the option to appear, make sure: (1) your dashboard's JSON metadata includes "cross_filters_enabled": true
, (2) you have edit permissions, (3) you're using a supported chart type (like Table, Pivot Table, or ECharts Bar/Pie), and (4) your chart has at least one dimension (group-by field)—charts with only metrics will not show the option due to a recent change #30176. The toggle appears in the Filter Bar Settings dropdown as "Enable cross-filtering" only if you have edit rights.
If you still don't see it, double-check the dashboard metadata and that your charts have group-by fields. No global feature flag is needed; the old DASHBOARD_CROSS_FILTERS
flag is deprecated release notes. If you’ve verified all of this and it’s still missing, let me know what steps you’ve tried or if you see any errors in the browser console.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
Comment From: johannes-ws
Where is the location of dashboard's JSON metadata? Is in shared_dashboard_function.ts? I already changed to cross_filters_enabled: true
in this file, but nothing happened. @dosu
Comment From: dosubot[bot]
The dashboard's JSON metadata is not in shared_dashboard_function.ts—editing that file only affects Cypress tests and does not impact real dashboards. In Superset 5.0.0, the JSON metadata (including cross_filters_enabled) is stored in the database for each dashboard. To edit it, open your dashboard in Superset, click the “... (three dots)” menu in the top right, choose “Edit dashboard properties,” and look for the JSON Metadata field. Add or update "cross_filters_enabled": true there, then save. This will enable cross-filtering for that dashboard.
Let me know if you need steps for editing this via the API or import/export!
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
Comment From: johannes-ws
When i opened my dashboard, by default "cross_filters_enabled": false
. After i changed it to "cross_filters_enabled": true
and i apply and save dashboard, it back into "cross_filters_enabled": false
again. I already do this many times and back again into "cross_filters_enabled": false
. What should i do? @dosu
Comment From: dosubot[bot]
This usually means the dashboard metadata isn't saving correctly. The most common reasons are: (1) a validation error in the JSON metadata, (2) lack of edit/ownership permissions, or (3) a frontend state issue.
Please check for any error messages or red toasts in the UI when you try to save. Also, open your browser's developer console (F12) and look for errors or failed network requests when you click "Apply." If you see any errors, please share the details.
To help isolate the issue, try making a minimal change in the JSON metadata (like editing a different field) and see if that persists. If no changes save, it's likely a permissions or validation problem. If only cross_filters_enabled reverts, there may be a frontend bug or a problem with the metadata structure.
Make sure you're editing the dashboard via the "Edit dashboard properties" dialog in the UI, not by editing files. Let me know what you find in the console or if you see any error toasts—those details will help pinpoint the cause.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
Comment From: johannes-ws
I don't changed the code, i just editing via Superset UI, there is a problem every i opened edit dashboard menu.
As we can see, "cross_filters_enabled"
always back into false
. @dosu
Comment From: dosubot[bot]
This issue is likely caused by a dashboard saving bug that affects dashboards with an owner assigned but no tags attached—saving fails silently and metadata changes (like "cross_filters_enabled": true
) revert after you apply them. This was fixed in a recent update (PR #34193), but Superset 5.0.0 may still have the bug.
Try adding a tag to your dashboard (any tag, even a temporary one), then save the properties again. If the metadata persists and "cross_filters_enabled"
stays true, you’ve hit this bug. If not, please share the full JSON metadata you’re trying to save and check the network response for the PUT request to /api/v1/dashboard/{id}
—look for any error messages or status codes. Also, confirm you have edit/ownership permissions on the dashboard.
If adding a tag works, you can remove it after saving, or upgrade to a Superset version that includes the fix. Let me know what you find!
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
Comment From: johannes-ws
What do you mean tag? Is dashboard name or not? @dosu
Comment From: dosubot[bot]
A "tag" in Superset is not the dashboard name—it's a separate metadata label you can use to categorize, filter, or organize dashboards. To add a tag, open your dashboard, click the "..." menu (top right), choose "Edit dashboard properties," and look for the "Tags" section (separate from the "Name" field). There you can add or remove tags using the multi-select control. Adding any tag (even a temporary one) may help resolve the saving issue you’re seeing.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
Comment From: johannes-ws
There is not any "Tags" section in my Superset 5.0.0 UI @dosu
Comment From: dosubot[bot]
The "Tags" section is missing in Superset 5.0.0 because the tags UI was introduced after that version—so this is expected for your setup. However, the backend and API do support tags, and you can use the API as a workaround for the dashboard metadata saving bug.
To do this:
- Find your dashboard's numeric ID (you can see it in the URL when editing the dashboard, e.g., /dashboard/{id}/).
- Make a POST request to /api/v1/tag/2/{dashboard_id}/ (where 2 is the object type for dashboards) with a JSON body like:
json { "properties": { "tags": ["temp-tag"] } }
This will create and attach a tag to your dashboard. - After this, try saving your dashboard metadata again (set "cross_filters_enabled": true and save). The change should now persist.
You’ll need an account with API access and dashboard edit rights. If you can’t use the API, upgrading to a newer Superset version is the only reliable alternative.
Let me know if you need a curl example or more details!
Reference: API and tags backend
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
Comment From: johannes-ws
When i try to edit json metadata in "Edit dashboard properties", by default it gives this code.
{
"color_scheme": "",
"refresh_frequency": 0,
"expanded_slices": {},
"label_colors": {},
"timed_refresh_immune_slices": [],
"cross_filters_enabled": false,
"default_filters": "{}",
"chart_configuration": {},
"global_chart_configuration": {},
"filter_scopes": {}
}
I just changed cross_filters_enabled
to be true
, apply, and save it. Superset gives success put request, but the response json metadata for cross_filters_enabled
is false
. This is the full response.
{
"id": 13,
"last_modified_time": 1755164410.0,
"result": {
"certification_details": "",
"certified_by": "",
"css": "",
"dashboard_title": "test1",
"json_metadata": "{\"color_scheme\":\"\",\"refresh_frequency\":0,\"expanded_slices\":{},\"label_colors\":{},\"timed_refresh_immune_slices\":[],\"cross_filters_enabled\":false,\"default_filters\":\"{}\",\"chart_configuration\":{},\"global_chart_configuration\":{},\"positions\":{\"CHART-7bK3LOsS1E0rBg4KSvhft\":{\"children\":[],\"id\":\"CHART-7bK3LOsS1E0rBg4KSvhft\",\"meta\":{\"chartId\":124,\"height\":50,\"sliceName\":\"test3\",\"uuid\":\"fb89fc9a-73d4-4529-a9e5-ab6db2c2ebd2\",\"width\":4},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-UN3r3w6UwqmT9LHRK34-2\"],\"type\":\"CHART\"},\"CHART-eJ8qZi_5ujjfVIQVFhbf2\":{\"children\":[],\"id\":\"CHART-eJ8qZi_5ujjfVIQVFhbf2\",\"meta\":{\"chartId\":125,\"height\":50,\"sliceName\":\"test4\",\"uuid\":\"fbf5fe68-79da-4461-9daa-37878e9ad43a\",\"width\":4},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-UN3r3w6UwqmT9LHRK34-2\"],\"type\":\"CHART\"},\"DASHBOARD_VERSION_KEY\":\"v2\",\"GRID_ID\":{\"children\":[\"ROW-UN3r3w6UwqmT9LHRK34-2\"],\"id\":\"GRID_ID\",\"parents\":[\"ROOT_ID\"],\"type\":\"GRID\"},\"HEADER_ID\":{\"id\":\"HEADER_ID\",\"type\":\"HEADER\",\"meta\":{\"text\":\"test1\"}},\"ROOT_ID\":{\"children\":[\"GRID_ID\"],\"id\":\"ROOT_ID\",\"type\":\"ROOT\"},\"ROW-UN3r3w6UwqmT9LHRK34-2\":{\"children\":[\"CHART-7bK3LOsS1E0rBg4KSvhft\",\"CHART-eJ8qZi_5ujjfVIQVFhbf2\"],\"id\":\"ROW-UN3r3w6UwqmT9LHRK34-2\",\"meta\":{\"background\":\"BACKGROUND_TRANSPARENT\"},\"parents\":[\"ROOT_ID\",\"GRID_ID\"],\"type\":\"ROW\"}},\"color_scheme_domain\":[],\"shared_label_colors\":[],\"map_label_colors\":{\"U7HPM7JHL\":\"#1FA8C9\",\"U014D0Q95K5\":\"#454E7C\",\"U80EFANJE\":\"#5AC189\",\"U017193F7JQ\":\"#FF7F44\",\"UHK31ESN4\":\"#666666\",\"UM4AW481K\":\"#E04355\",\"UDBV75S6M\":\"#FCC700\",\"U010L66PJ6N\":\"#A868B7\",\"U012CQL57CH\":\"#3CCCCB\",\"U7GMC60TV\":\"#A38F79\",\"UK6FK7KN3\":\"#8FD3E4\",\"UFWUGG1L3\":\"#A1A6BD\",\"UU98R2DSR\":\"#ACE1C4\",\"U012JGEUD4J\":\"#FEC0A1\",\"UA22VUQR1\":\"#B2B2B2\",\"UFUD53AAC\":\"#EFA1AA\",\"U7GSEN2S0\":\"#FDE380\",\"UTQAXQT6H\":\"#D3B3DA\",\"U0101JVM9GX\":\"#9EE5E5\",\"U01E30VMWSY\":\"#D1C6BC\",\"U0173077ADN\":\"#454E7C\",\"UC81VFB6H\":\"#5AC189\",\"U7H3JCP5K\":\"#FF7F44\",\"U014B7R5ZGR\":\"#666666\",\"U9RJLLJUF\":\"#E04355\",\"U7GN92G9H\":\"#FCC700\",\"UE9KV6D8F\":\"#A868B7\",\"UE3BEAZA8\":\"#3CCCCB\",\"UEX4GB9K5\":\"#A38F79\",\"UV6TAD74M\":\"#8FD3E4\",\"U01D76V70Q3\":\"#A1A6BD\",\"UGJS3SEMA\":\"#ACE1C4\",\"UM0AX5TMX\":\"#FEC0A1\"},\"filter_scopes\":{}}",
"owners": [
1
],
"slug": null
}
}
Why the response changed back into false, however i already set it true? @dosu
Comment From: dosubot[bot]
This is a known bug in Superset 5.0.0: if your dashboard has owners but no tags, saving metadata (like "cross_filters_enabled": true
) silently fails and reverts to false due to backend validation logic. The usual workaround is to add a tag, but the UI for tags isn't available in 5.0.0. You can work around this by using the API to add a tag to your dashboard—send a POST request to /api/v1/tag/2/{dashboard_id}/
with a JSON body like:
{
"properties": {
"tags": ["temp-tag"]
}
}
After adding a tag, try saving your dashboard metadata again. If API access isn't possible, upgrading Superset is the only reliable fix. If you want a curl example or more details, let me know!
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
Comment From: johannes-ws
I already send a post request to /api/v1/tag/2/13/
which 13 is my dashboard id. When i try to get request to /api/v1/tag/get_objects/
, it gives this response.
{
"result": [
{
"changed_on": "2025-08-12T09:59:43.326156",
"created_by": null,
"creator": "",
"id": 13,
"name": "Trends",
"owners": [],
"tags": [
{
"id": 1,
"name": "temp-tag",
"type": "TagType.custom"
}
],
"type": "chart",
"url": "/explore/?slice_id=13"
}
]
}
I already also try to edit "cross_filters_enabled": false
to be true
, but it still gives the same problem with no tags. What should i do? Is this bug or not? @dosu
Comment From: dosubot[bot]
The tag was attached to a chart, not your dashboard—Superset’s tagging API uses different object types for charts (2) and dashboards (3), and IDs are not shared between them. To work around the dashboard metadata saving bug in 5.0.0, you need to attach a tag to the dashboard itself (object_type=3).
Try this API call instead:
POST /api/v1/tag/3/13/
{
"properties": {
"tags": ["temp-tag"]
}
}
After you do this, check /api/v1/tag/get_objects/
and confirm the tagged object type is "dashboard". Then retry saving "cross_filters_enabled": true
in the dashboard properties. If it still doesn’t persist, upgrading Superset is the only reliable fix—the bug is resolved in newer versions (PR #34193).
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
Comment From: johannes-ws
I already send a post request to /api/v1/tag/3/13/
which 13 is my dashboard id. When i try to get request to /api/v1/tag/get_objects/
, it gives this response.
{
"changed_on": "2025-08-14T10:17:34.524917",
"created_by": {},
"creator": "Superset Admin",
"id": 13,
"name": "test1",
"owners": [
{
"first_name": "Superset",
"id": 1,
"last_name": "Admin",
"username": "admin"
}
],
"tags": [
{
"id": 1,
"name": "temp-tag",
"type": "TagType.custom"
}
],
"type": "dashboard",
"url": "/superset/dashboard/13/"
},
I already also try to edit "cross_filters_enabled": false
to be true
, but it still gives the same problem with no tags. What should i do? Is this bug or not? @dosu
Comment From: dosubot[bot]
Yes, this is a confirmed bug in Superset 5.0.0: dashboard metadata changes like "cross_filters_enabled" may not persist if the dashboard has owners, even after attaching a tag via the API. The intended tag workaround does not always work in 5.0.0. This bug is fixed in newer versions (see PR #34193). Upgrading Superset is the only reliable solution. If you can't upgrade, there is no fully supported workaround—removing all owners from the dashboard may allow metadata to save, but this is not recommended for production use. Let me know if you need more details about upgrading or want to try other (unsupported) workarounds.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
Comment From: LevisNgigi
Hey @johannes-ws with the mouse icon on the chart, have you tried right-clicking to see the available options? If the chart supports cross-filters, you should see an “Add cross-filter” option in the menu.
Comment From: johannes-ws
Like this? There is not cross-filters option. Is my chart doesn't support cross-filters? I create this pie chart using one dimension and one metric just for testing cross-filters, but it still not visible. @LevisNgigi
Comment From: LevisNgigi
Yeah I exactly like that and clearly the cross-filters option is not there. Does it work for other charts in the example dashboards provided?
Comment From: johannes-ws
Dosu said that sample dashboards like “Sales Dashboard” and “Featured Charts” have cross filtering enabled by default, but in my Superset i don't see that option, same like dashboard that i made. @LevisNgigi
Comment From: michael-s-molina
Hi @johannes-ws. You need to enable cross-filtering per dashboard using the gear icon.
Comment From: johannes-ws
@michael-s-molina Yeah i knew that. In my Superset, there is no gear icon. My friend also already ask this in discussion. https://github.com/apache/superset/discussions/34549