Metabase 63 changelog
Before you upgrade, back up your Metabase application database!
Check out our upgrading instructions.
Get the most out of Metabase. Learn more about advanced features, managed cloud, and first-class support.
For whether these versions are still supported, see Version support.
Metabase 63.19
Upgrading | 63.19
Metabase Open Source | 63.19
- Docker image:
metabase/metabase:v0.63.19.x - JAR download
Metabase Enterprise | 63.19
- Docker image:
metabase/metabase-enterprise:v1.63.19.x - JAR download
Enhancements | 63.19
Administration
- Adds an ‘Upgrade now’ banner warning self-hosted admins when running a critically vulnerable Metabase version. #82214
- Add Action execution to Usage Analytics #82257
Embedding
- Embedding SDK warns host apps still using React 18, since React 19 will soon be required #82432
Bug fixes | 63.19
Administration
- Fix Remote Sync so renaming or moving a synced collection updates repo paths for all its contents, not just the collection file #82865
- Fixes a permission bypass where a nested card’s parameter values_source_config.card_id could leak data from a private card the user couldn’t read #82600
- Fixes an issue that prevented non-admin users from creating alerts #78101
- Fixes SAML single logout for Auth0 by including
SessionIndexin logout requests #77837
Database
- Snowflake driver HTTP pool leak - blocks all queries until restart #83093
- Metabase incorrectly parses user-defined data type aliases, uses alias name instead of underlying type #62335
- Deleted and archived tables leave orphaned foreign key relationships which block Data Studio find and replace #82615
Operation
- Adaptive caching strategy - “Minimum query duration” is ignored and every query gets cached #78340
- Caching - preemptive refresh re-warms the all-time most popular parameter variants, not the recent ones #78341
Embedding
- Fixed custom actions from the mapQuestionClickActions plugin not appearing in EditableDashboard click action popover #82832
- Fixed InteractiveQuestion and StaticQuestion briefly showing the “run your code” empty state instead of a loader while the query is still resolving #82693
- Fix security issue where embedded dashboards could still serve data from archived (trashed) cards #82529
- Fixes SDK entity navigation dropping the click behavior filter when the target is a GUI (MBQL) question #82409
AI
- Fixes a security issue where pgvector/semantic-search database credentials could be leaked in plain text in application logs. #82930
Querying
- Fix blocked table’s ID being formatted with thousands separators in error messages, now shown as a plain number #82772
- SQL editor keystrokes ~2x slower than pre-54 (Ace) editor with large schemas; worse while results are displayed #77377
Visualizations
- Fixes “Display as” dropdown options being cropped/cut off in chart settings popover #79319
- Subscription row charts fail with “Series not found” after category mappings are processed twice #82654
Organization
- Fix 500 error from GET /api/collection on fresh instances with no Personal Collections yet #83130
Uncategorized
- Fix docs sidebar link for “Agent-driven development” so it no longer redirects and highlights correctly #82910
Metabase 63.18
Upgrading | 63.18
Metabase Open Source | 63.18
- Docker image:
metabase/metabase:v0.63.18.x - JAR download
Metabase Enterprise | 63.18
- Docker image:
metabase/metabase-enterprise:v1.63.18.x - JAR download
Enhancements | 63.18
Embedding
- Allow passing
dataPickertoEditableDashboard#82259
Bug fixes | 63.18
Administration
- Simple RCLS fails open when column value and user attribute cannot be compared, exposing all rows #81821
Operation
- Remote Sync: push always fails on Windows hosts (all git providers) #74095
- load-from-h2 fails with fk_metabase_table_transform_id violation — transform table is missing from the dump/load copy list #78704
AI
- Fixed MCP search response schema validation #82202
- MCP OAuth consent form posts to wrong path when Metabase is hosted under a subpath #77723
Querying
- Pivot Table fails when a question has some columns unselected #81203
- MCP queries on SQL Server (MSSQL) generating invalid queries (OFFSET without ORDER BY) #81988
Metabase 63.17
Upgrading | 63.17
Metabase Open Source | 63.17
- Docker image:
metabase/metabase:v0.63.17.x - JAR download
Metabase Enterprise | 63.17
- Docker image:
metabase/metabase-enterprise:v1.63.17.x - JAR download
Enhancements | 63.17
Administration
- Add MB_DISABLE_LEGACY_STARTUP_ENCRYPTION to refuse startup instead of encrypting legacy plaintext #82097
- Read-check the transform in GET /api/transform/run/:run-id #81761
- Warn when startup encrypts legacy plaintext, and make migrations leave none behind #81898
- Store setting values encrypted under the setting’s name #81751
- only derive site-url from authenticated superuser requests #81130
Database
- Show an error when attempting to change transform’s target table to one of its source tables #81676
Performance
Operation
- Show errors from the body of http 500 responses to users #74693
- Migrate H2 -> SQLite sample db even when we’re in new-install mode #81596
- Escape LIKE metacharacters in user-supplied search strings #81161
Embedding
- Clean up embedding settings #81452
AI
- Respect sandboxing, impersonation, and routing in Metabot metadata #81769
Bug fixes | 63.17
Administration
- JWT admin settings page Crashes Group Sync has many mappings #81838
- Validate LDAP server certificates and normalize synced attributes #81039
Database
- Invalid mapping (
$project) of nested fields in joined ($lookup) collection in MongoDB #81546 - Enforce single-statement impersonated queries on all sql-jdbc drivers #81653
- BigQuery CSV exports of wide results are ~2.3x slower in v0.60.12 than v0.53.9.5 #79273
- MongoDB table not pre-selected after converting to native query #80725
- SQL Server driver always sends instanceName, breaking connections to Microsoft Fabric / Synapse serverless #81270
Operation
- Metabase Initialization Fails when Jar is in a path that Contains a Space #81733
Embedding
- Stale session cookie overrides valid embed session header #81132
AI
- Metabot can be used to open the SQL editor for users without native question permissions #80290
Querying
- Filter linking not available for field with FK relationship in MongoDB after upgrade to v1.63.13/v1.63.14 #80557
- Time Grouping Filter on Dashboard matches to wrong field on Question if field used in join and summary #80098
- Missing desired-alias->escaped when joining two sandboxed tables with shared column name #70233
- Using :: to cast values in postgres native queries generates an error on SQLGlot parsing #81373
- Redshift: ‘true’ treated as boolean and fails on character varying comparison (operator does not exist: character varying = boolean) #80004
- Model custom column name does not persist in saved questions #65532
Metabase 63.16
Upgrading | 63.16
Metabase Open Source | 63.16
- Docker image:
metabase/metabase:v0.63.16.x - JAR download
Metabase Enterprise | 63.16
- Docker image:
metabase/metabase-enterprise:v1.63.16.x - JAR download
Enhancements | 63.16
Administration
- Encrypts subscription and alert recipient details, and enforces the email allow-list when sending. #81227
- Require native query permission to author native query actions through API #80612
Database
- Improve performance by filtering database schemas server-side when all target schemas are exactly named. #81250
Operation
- Profiling bundles now include the full log output for easier troubleshooting. #80848
Querying
- Improved performance by reducing unnecessary server round-trips when loading data. #80958
Fixes | 63.16
Administration
- Serialization export now returns a clear, actionable error when the specified target collection ID doesn’t exist. #80809
- Metabase no longer auto-encrypts an existing app DB on startup; use the new
enable-encryptioncommand to encrypt it explicitly. #81237 - Fix GET /api/database/:id/metadata failing for non-admin users with table-level permissions #81397
- Fix permission check when reverting a revision to correctly validate against the restored table’s definition. #80553
- Fixed a security issue where the Slack bug-report API ignored its feature flag setting and trusted caller-supplied identity instead of the actual session user. #80467
- Fixes a security issue where JWT SSO group sync could allow SQL injection via crafted group claims during login. #80615
- Fixes a security issue where generic OIDC login didn’t verify the email_verified claim, which could allow account takeover. #80269
- Metabot access permissions for “All tenant users” not cleared when switching to group-level permissions #80394
Database
- Fixed ClickHouse driver to properly send session_timezone, so date filters now respect the report timezone. #79671
- Fixed a regression causing ClickHouse queries with week/month/quarter/year bucketing on nested source queries to fail with an “Illegal type” error. #79648
Embedding
- MCP Apps UI credentials now refresh automatically before they expire, preventing cached resources from losing access. #80853
- Public and embedded dashboards/questions now only expose parameter fields that are public Field columns and enabled parameters. #81383
- Fixes concurrent guest embeds sharing the same JWT/guest token, so multiple embedded questions now work correctly. #81021
- Fixed tenant-specific collections showing as “Unknown” in the dashboard question picker breadcrumbs. #80726
- Fixes a security issue by validating the source of the SAML popup window used for embedding authentication. #80494
Operation
- Show underlying connection errors when Metabase fails to connect to the application database at startup #81232
Organization
- Fixed a bug where updating a notification without including its ID in the request body deleted the notification and returned a 404 error. #79821
Reporting
- Fixes a security issue allowing unsafe HTML/script injection via Dashboard Heading cards in email notifications, and restricts markdown links to safe schemes. #80597
Visualization
- Fixed blank/collapsed visualization preview when creating a new question in the dashboard query builder. #79893
Metabase 63.15
Upgrading | 63.15
Metabase Open Source | 63.15
- Docker image:
metabase/metabase:v0.63.15.x - JAR download
Metabase Enterprise | 63.15
- Docker image:
metabase/metabase-enterprise:v1.63.15.x - JAR download
Enhancements | 63.15
Administration
- Require native query permission to author native query actions through API #80612
- Add a setting to sign session keys with a server-side secret #80046
- Adds an additional permission check on test subscription endpoint #80136
Embedding
- Allow embedding sdk target for saml popups #80479
- Embedding now supports specifying multiple fallback fonts, not just a single font #80442
Bug Fixes | 63.15
Administration
- Metabot access permissions for “All tenant users” not cleared when switching to group-level permissions #80394
- Reject impersonation role equal to the driver default-role sentinel #80616
- Require write permission to send notifications and to use inline channels #80069
Database
- Fix Mongo native query preview sidebar after removal of default row limit #80395
Operation
- Error saving query execution info: String value is misquoted as identifier #74468
- Serialization imports to an older Metabase version can break content with no warning #78849
Metabase 63.14
Upgrading | 63.14
Metabase Open Source | 63.14
- Docker image:
metabase/metabase:v0.63.14.x - JAR download
Metabase Enterprise | 63.14
- Docker image:
metabase/metabase-enterprise:v1.63.14.x - JAR download
Release information | 63.14
This release is focused on hardening Metabase security. Many of these changes have already been included in minor releases that we published only as JAR and Docker images.
Some security measures required us to introduce breaking changes to Metabase.
Breaking changes include:
-
We no longer support using Metabase API in undocumented ways, or in ways that aren’t strictly required by our frontend
- One of the more notable API changes is that
/api/card/{card-id}/query/{export-format}endpoint now requires a non-blankidfor every parameter inparametersarray. The parameter’s id can be taken from the card’s parameter array entry: GET /api/card/{card-id}` returns a parameters array where each entry has an id (a UUID), plus slug and target , so you can map your filter names to ids once and reuse them.
- One of the more notable API changes is that
-
Users now need “View” collection permissions to everything a question depends on, including models, metrics, and other questions, all the way down the dependency chain.
- If any dependency in that chain is in a collection that the user lacks View access to, the card will now fail with a permissions error referencing an item they cannot access.
-
Database secrets are no longer exported with serialization. Imports will still work.
Other enhancements | 63.14
Administration
- Security advisory now displays affected version ranges clearly. #78649
Database
- Add warehouse-allowed-hosts setting to control networks Metabase may connect to #79181
- Optimize metadata endpoint payload for schema-less databases #73928
- BigQuery: reject oversized queries client-side with a humanized error - #79020 #79019
Embedding
- Allow copying to clipboard embedded apps #80067
Organization
Querying
- Improving performance of field values #79132
Reporting
- Dashboard new-question flow query builder now uses available screen space instead of appearing cramped. #77270
Other
- Enable Kimi K3 and Deepseek V4 Flash 0731 via OpenRouter #79207
- Adds support for Mistral as a Metabot AI provider option. #78521
- Add Z.AI metabot provider #78253
- Add Mistral Medium 3.5 model to OpenRouter AI provider #78644
- Adds support for GLM-5.2 and DeepSeek V4 Pro AI models via OpenRouter. #78253
Bug fixes | 63.14
Administration
- False Positive Notification for SC-2026-015 in v1.58 #79404
- Metrics don’t work for users in a Customer RCLS Permission Group #76044
Database
- Large-scale Databricks with multiple catalogs enabled: IN tuple comparison slows down field sync and takes ~3.5 minutes per schema #79504
- [Snowflake] Sync floods logs with “Failed to check if table is dynamic” stack traces for any schema whose name contains an underscore #78541
Embedding
- Embedding SDK: resizing a table column in a dashboard crashes the card — “Maximum update depth exceeded” (ResizeObserver → setState loop) #78557
- SDK: saving with targetCollection=“tenant” silently targets “Our Analytics”. Tenant users can’t save at all. #77709
- Embedded editableDashboard loses back navigation after “Edit Question” #76796
Querying
- SQL Server: “Today” (relative date) filter on a
datetimeoffsetcolumn returns the wrong rows when the report timezone is not UTC #78612 - Query timeouts result in opaque metabase error “query_processor.middleware.cache Error processing query: Assert failed: (some? %)” #66655
- SQL queries with large IN/ARRAY literal lists could be incorrectly rewritten (e.g. null values altered) during query parsing. #74284
Metabase 63.3 - Metabase 63.13
Metabase releases 63.3-63.13 were private releases focused on hardening Metabase security. All changes from 63.3-63.13 were incorporated into the public release Metabase 63.14.
Metabase 63.2
Upgrading | 63.2
Metabase Open Source | 63.2
- Docker image:
metabase/metabase:v0.63.2.x - JAR download
Metabase Enterprise | 63.2
- Docker image:
metabase/metabase-enterprise:v1.63.2.x - JAR download
Bug fixes | 63.2
Embedding
- Modular Embedding: CollectionBrowser shows dashboard questions (#77905)
Other
- Color range conditional formatting no longer saturates out-of-range values when using custom min/max (#77957)
- Fix uppity upsell (#77822)
Metabase 63.1
What’s in the release? | 63.1
Upgrading | 63.1
Metabase Open Source | 63.1
- Docker image:
metabase/metabase:v0.63.1.x - JAR download
Metabase Enterprise | 63.1
- Docker image:
metabase/metabase-enterprise:v1.63.1.x - JAR download
Breaking changes | 63.1
We updated the Sample Database that ships with Metabase. The Sample Database used to be an H2 database. It’s now a SQLite database. If you’ve created questions based on data in the Sample Database, those questions will be deleted.
AI updates | 63.1
-
More AI providers
We’ve added support for more vendors to power Metabase’s in-app AI features. Bring an API key, plug it into Metabase, and start building stuff with AI. Vendors now include:
- Metabase AI service (Cloud only)
- Anthropic
- AWS Bedrock (new in 63)
- Microsoft Azure (new in 63)
- OpenAI (new in 63)
Set up AI for your Metabase in Admin > AI > AI settings > Connect to a provider.
-
MCP improvements
The MCP server now supports:
- Inline charts in MCP clients (#75550). Ask your AI to show a bar chart. See MCP docs
- Metric creation (#76690)
- Saving native SQL as questions (#76170)
- Searching questions, dashboards, and collections (#76316)
- Auditing: a new tab in Admin > AI > MCP > Authorizations to track OAuth Dynamic Client registrations and approval/denials.
Embedded analytics updates | 63.1
-
Custom visualizations in the React SDK (Pro/Enterprise)
Enable specific custom visualizations in your embeds with the new
allowedCustomVisualizationsprop onMetabaseProvider. -
SDK
use-actionhookWith the
useActionhook, you can trigger an action when someone clicks a button or submits a form in your app. See SDK actions.
New features | 63.1
-
Two-factor authentication (2FA) (Pro/Enterprise)
Adds the ability to set up two-factor authentication through an authenticator app (with email 2FA as a fallback). Enable in Admin settings > Authentication, then configure for your user in Account settings.
-
Treemap Visualization
Adds a new Treemap chart type for visualizing hierarchical / part-to-whole breakdowns.
Try it out: create a question with single metrics in the Summarize section, and two groupings in the group by section. Then visualize as a treemap.
-
PDF attachments in subscriptions
Adds a “attach PDF of the dashboard” toggle for dashboard subscriptions (email + Slack). Generates the PDF server-side. Try it out by setting up a new dashboard subscription.
PDFs sent from OSS/Starter Metabases will include watermarks.
-
CSV uploads support for Snowflake (#35069)
-
Dimension picker for the metrics explorer
A new sidebar picker makes it easier to select dimensions when viewing one or more metrics in the metrics explorer.
Enhancements | 63.1
- Admins can now invite people to your Metabase from a question or dashboard.
- Maps and detail charts now render in static visualizations, including PDF exports and dashboard subscriptions.
- Pivot tables now appear as pivot tables (not plain tables) in subscriptions.
- Documents now have a description field.
- Sync column and table descriptions from Trino, Presto, and Athena.
- The Sample Database now uses SQLite (previously shipped as an H2 database).
- Filter for published tables in Data Studio.
See more...
Administration
- Add a way to hide “Ask your admin to create a public link” when working with sensitive data (#60022)
- Improve sync field-values performance for Athena (#45335)
- Don’t destroy the database during a creation failure for cloud databases (#76363)
- Stop retrying permanently-failed fingerprinting on every sync (#75640)
- Split oversized email recipient lists to avoid SMTP provider rejection (#74825)
- Update the API keys admin page UI (#75170)
Querying
- Allow running saved questions by ID (#71688)
- Omit the case-sensitive option when the database doesn’t support it (#75665)
- Don’t escape comments inside quoted strings when generating nestable SQL (#39401)
Dashboards
- Edit visualization / “Visualize another way” now works from a card after a dashboard filter (#70839)
Visualization
- Handle null x-axis values in time series charts (#75962)
- Fix axis labels being cut off when rotated 45 degrees (#75815)
- Display column labels below split map charts (#74774)
- Apply column formatting to the map legend in static exports (PDFs, subscriptions) (#76024)
- Detail views now render in static exports (PDFs, subscriptions) (#75386)
- Fix tooltips rendering under popovers and menus (#75373)
Organization
- Filter for published tables in Data Studio (#74702)
Embedding
- Gate SDK query-builder controls on the create-queries permission (#76862)
- Adds telemetry for the modular embedding SDK (#75785). This is part of the opt-in anonymous usage tracking, which you can turn on/off in Admin > Settings > Usage tracking.
- Don’t show the
sdk-disabledusage problem on localhost (#75930) - Remove branding on PDF exports for white-labeling customers (#76426)
Operation
- Remove the deprecated
X-XSS-ProtectionHTTP header (#11444)
Other
- Add CFP Franc (XPF) to the currency list (#75906)
- Support emoji, Markdown text alignment, and Visualizer name overrides in PDF exports (#77034, #77031, #77033)
- Improve pivot table and object detail PDF renders (#76728)
- Fix the run-query button icon being too small on large screens (#76223)
- Performance: lazy-load heavy front-end modules (ECharts, Leaflet, react-virtualized) for faster initial loads
Bug fixes | 63.1
Administration
- Incorrect tooltip for
@tenant.slugon create tenant user form (#76318) - Table has no Fields associated with it (MySql) (#76222)
- Name input border cut off on hover (#75922)
- MCP CORS allowlist is incorrectly sensitive to trailing slashes (#75839)
- Permissions table shows warning icon when it shouldn’t (#75750)
- User provisioning control turns to “disabled” once you add a new group mapping (#75352)
- Errors when archiving a collection are silent and the success toast is still shown (#75180)
- Field name truncated in UI, cannot differentiate (#75000)
- Enabling impersonation prevents
SHOWRedshift queries from running, even as admin (#74538) - Table Metadata placeholder/skeleton loads forever if database has no synced tables (#74508)
- Athena sync never completes if user does not have
glue:GetDatabasespermission (#74092) - Background sync jobs not tracked in Usage Analytics (#73335)
- Permissions conflict when “All Users” set to None (#71300)
- Cache invalidation endpoint returns 404 (#66499)
Database
- EnableArrow=0 is ignored now, and there might be problems (databricks) (#76536)
- Grouping with embedded fields does not show the full field path (#33698)
Embedding
- Theme acceptance text lacks link to usage terms (#76727)
Operation
- Serialization export reports success (exit code 0 / HTTP 200) when warnings produce empty output (#75176)
- continue_on_error and full_stacktrace are ignored on serialization (#74622)
- Cards with self-referencing filters are incorrectly marked as a circular dependency, breaking remote sync imports (#73133)
- Frontend crashes when notification payload is null (#73073)
- Questions with deeply nested MBQL can be exported, but not imported using remote sync (#71590)
- Serialization of instances with a massive amount of fields leads to OOM crashes (#57737)
Organization
- Schema breadcrumb missing after refreshing table opened in the Query Builder (#75393)
- Removing a chart with supporting text at the beginning of a document causes the document to crash (#75137)
- Unable to restore items from synced collection (#73449)
- Shift+scroll does not work in the data picker (#66456)
Querying
- Escape doesn’t close “Discard your changes?” warning in Model’s New Action modal (#75562)
- API-created filters open Custom Expression editor (#75144)
- Switching the database on SQL models will make dependant cards not to find the source (#74561)
- We duplicate the columns on column pickers when table has remapped fields (#74177)
- ClickHouse boolean SETTINGS values (true/false) not handled correctly in native queries (#73431)
- WITH RECURSIVE no longer functioning with Clickhouse… (#73161)
- Notebook editor shows wrong table with multiple joins (#72823)
- Dependency graph hides hidden upstream tables (#71630)
- Column selection lost after doing drill-through (#69105)
- Saving changes to sql question shows the “these changes will break some other things” popup with the question that I’m saving (#67973)
- Self-joined column not being remapped (#67808)
- Inactionable Error Message when Using Custom Expressions in Unsupported Ways (#65218)
- Cannot Select Columns in the Query Builder After Joining a Native SQL Model (#64779)
- Query error line numbers do not match lines in SQL editor (#64133)
- Incorrect model metadata overrides after changing the query and removing a column with the same name (#60930)
- Metric name wrong when first added to Summarize step (#58307)
- Row count differs when question is connected to an empty dashboard filter (#48439)
- Column filters on binned columns not working as expected (#15334)
- Drill through menu doesn’t show up on
Otherpie slices (#5334) - SQL Filters get randomly reordered without any possible modification (#5136)
Reporting
- Breadcrumbs for saved questions located within dashboards look broken (#76202)
- Cannot search for Documents in Link dashcards (#75485)
- Stale dashboard name shown after renaming (#75184)
- Key prop violation in SectionLayoutPreview (#75112)
- Dashboard filter bypasses cached FieldValues when FK remapping exists, generating an expensive JOIN that can OOM on large tables - Clickhouse specific (#74154)
- “Save” button remains disabled when editing axis configurations in Dashboards (#73152)
- Can’t Make Use of Visualizer if Underlying Questions Returns “No Results” by Default (#64468)
Visualization
- Toast crashes because color operations fail on colors defined using
color-mix(#77124) - Drag, options, and remove buttons in Data tab of chart settings look wrong (#76201)
- Select components in chart settings look wrong (#76200)
- Non-overlapping conditional formatting color ranges on the same column are not applied (#75933)
- Misaligned chevron in Progress chart “Goal” setting (#75782)
- Y-axis auto positions lines incorrectly in charts (#75701)
- Conditional formatting does not work if the mini bar chart is enabled (#75095)
- Tick labels may be clipped and missing the currency symbol when there are both compact and full-notation labels (#74568)
- Pivot Tables no longer Return “No Results” (#74387)
- Time offset wrong in dashcard viz in 0.59.10 (#73972)
- Line chart zero-fill skips the week across DST spring-forward (#71811)
- Bars overlap on monthly time series chart (#71634)
- Select overflows viz settings popover (#71493)
- xlsx download delivers JSON (#70365)
- Loss of Date Granularity on Trend Viz in Native Questions (#69525)
- Time grouping with native questions - period names are incorrectly formatted when using Ordinal for X-axis scale (#68179)
Other
- Upgrade from v62 to v63 fails when actions exist on the Sample Database (#77818)
- Wrong colors in dark mode in getTextColorForBackground function (#76593)
- unable to render this card on pdf subscription (#76542)
- MCP
searchdocs claim it finds cards/dashboards/collections, but it only returns tables/metrics/models (#76317) - Command palette actions search gives undesired results (#76055)
- CSV exports opened in Excel don’t respect the GBP symbol (#75875)
- Middle click does not work on search results (#75596)
- Public Links for Pivot Tables: Download does not preserve pivot formatting (#75545)
- Investigate High CPU Utilization for Cloud Customer (#75524)
- Some icons have wrong color in the question’s info panel (#75469)
- Metabot analysis fails on valid multi-series row charts (#74862)
- Dependent transforms can run before upstream table stats are ready (#74478)
- MCP server unreliably paginates large datasets, may tell pagination is not supported (#74369)
- Timeseries charts shows incorrect Date Ranges on hover when it detects “Weekly” data (#73005)
- Deadlock updating dashboard last_viewed_at in multi-master setup (#72929)
- Agent API and MCP
searchtools/endpoints cannot search for models (#72886) - Remote sync gets stuck on a deleted remote branch (#72778)
- Tables created by deleted transforms can’t be accessed in Data Studio (#72542)
- Remote sync fails if temp directory is deleted, until instance restart (#71364)
- Permission graph error if there are more than 65K collections (#70596)
- Opening a non existant transform from Data Structure folder breaks the ui (#69904)
- Incorrect binning options provided (#48932)
- Caching a model with columns with repeated names will generate invalid queries (#25014)
- Truncated date options in summarize menu don’t group by truncated data for custom columns (#27808)
Metabase 63.0-beta
This changelog is for the BETA release. To see the full changelog for v62 stable release, see Metabase 63.1.
See v63 BETA changelog...
NOTE: This is a beta release. We don’t recommend running this in production without testing it in a staging environment first. If you encounter any issues with this beta, please report them on GitHub.
What’s in the release? | 63.0-beta
- Breaking changes
- AI updates
- Embedded analytics updates
- New features
- Enhancements
- Bug fixes
- Already Fixed
Upgrading | 63.0-beta
Metabase Open Source | 63.0-beta
- Docker image:
metabase/metabase:v0.63.0-beta - JAR download
Metabase Enterprise | 63.0-beta
- Docker image:
metabase/metabase-enterprise:v1.63.0-beta - JAR download
Breaking changes | 63.0-beta
We updated the Sample Database that ships with Metabase. The Sample Database used to be an H2 database. It’s now a SQLite database. If you’ve created questions based on data in the Sample Database, those questions may break.
AI updates | 63.0-beta
-
More AI providers
We’ve added support for more vendors to power Metabase’s in-app AI features. Bring an API key, plug it into Metabase, and start building stuff with AI. Vendors now include:
- Metabase AI service (Cloud only)
- Anthropic
- AWS Bedrock (new in 63)
- Microsoft Azure (new in 63)
- OpenAI (new in 63)
Set up AI for your Metabase in Admin > AI > AI settings > Connect to a provider.
-
MCP improvements
The MCP server now supports:
- Inline charts in MCP clients (#75550). Ask your AI to show a bar chart. See MCP docs
- Metric creation (#76690)
- Saving native SQL as questions (#76170)
- Searching questions, dashboards, and collections (#76316)
- Auditing: a new tab in Admin > AI > MCP > Authorizations to track OAuth Dynamic Client registrations and approval/denials.
Embedded analytics updates | 63.0-beta
-
Custom visualizations in the React SDK (Pro/Enterprise)
Enable specific custom visualizations in your embeds with the new
allowedCustomVisualizationsprop onMetabaseProvider. -
SDK
use-actionhookWith the
useActionhook, you can trigger an action when someone clicks a button or submits a form in your app. See SDK actions.
New features | 63.0-beta
-
Treemap Visualization
Adds a new Treemap chart type for visualizing hierarchical / part-to-whole breakdowns.
Try it out: create a question with single metrics in the Summarize section, and two groupings in the group by section. Then visualize as a treemap.
-
PDF attachments in subscriptions
Adds a “attach PDF of the dashboard” toggle for dashboard subscriptions (email + Slack). Generates the PDF server-side. Try it out by setting up a new dashboard subscription.
PDFs sent from OSS/Starter Metabases will include watermarks.
-
Dimension picker for the metrics explorer
A new sidebar picker makes it easier to select dimensions when viewing one or more metrics in the metrics explorer.
Enhancements | 63.0-beta
- Admins can now invite people to your Metabase from a question or dashboard.
- Maps now render in static visualizations, including PDF exports and dashboard subscriptions.
- Pivot tables now appear as pivot tables (not plain tables) in subscriptions.
- Documents now have a description field.
- Sync column and table descriptions from Trino, Presto, and Athena.
- The Sample Database now uses SQLite (previously shipped as an H2 database).
See more...
Administration
- Add a way to hide “Ask your admin to create a public link” when working with sensitive data (#60022)
- Improve sync field-values performance for Athena (#45335)
- Don’t destroy the database during a creation failure for cloud databases (#76363)
- Stop retrying permanently-failed fingerprinting on every sync (#75640)
- Split oversized email recipient lists to avoid SMTP provider rejection (#74825)
- Update the API keys admin page UI (#75170)
Querying
- Allow running saved questions by ID (#71688)
- Omit the case-sensitive option when the database doesn’t support it (#75665)
- Don’t escape comments inside quoted strings when generating nestable SQL (#39401)
Dashboards
- Edit visualization / “Visualize another way” now works from a card after a dashboard filter (#70839)
Visualization
- Handle null x-axis values in time series charts (#75962)
- Fix axis labels being cut off when rotated 45 degrees (#75815)
- Display column labels below split map charts (#74774)
- Apply column formatting to the map legend in static exports (PDFs, subscriptions) (#76024)
- Detail views now render in static exports (PDFs, subscriptions) (#75386)
- Fix tooltips rendering under popovers and menus (#75373)
Organization
- Filter for published tables in Data Studio (#74702)
Embedding
- Gate SDK query-builder controls on the create-queries permission (#76862)
- Adds telemetry for the modular embedding SDK (#75785). This is part of the opt-in anonymous usage tracking, which you can turn on/off in Admin > Settings > Usage tracking.
- Don’t show the
sdk-disabledusage problem on localhost (#75930) - Remove branding on PDF exports for white-labeling customers (#76426)
Operation
- Remove the deprecated
X-XSS-ProtectionHTTP header (#11444)
Other
- Add CFP Franc (XPF) to the currency list (#75906)
- Support emoji, Markdown text alignment, and Visualizer name overrides in PDF exports (#77034, #77031, #77033)
- Improve pivot table and object detail PDF renders (#76728)
- Fix the run-query button icon being too small on large screens (#76223)
- Performance: lazy-load heavy front-end modules (ECharts, Leaflet, react-virtualized) for faster initial loads
Bug fixes | 63.0-beta
Administration
- Incorrect tooltip for
@tenant.slugon create tenant user form (#76318) - Table has no Fields associated with it (MySql) (#76222)
- Name input border cut off on hover (#75922)
- MCP CORS allowlist is incorrectly sensitive to trailing slashes (#75839)
- Permissions table shows warning icon when it shouldn’t (#75750)
- User provisioning control turns to “disabled” once you add a new group mapping (#75352)
- Errors when archiving a collection are silent and the success toast is still shown (#75180)
- Field name truncated in UI, cannot differentiate (#75000)
- Enabling impersonation prevents
SHOWRedshift queries from running, even as admin (#74538) - Table Metadata placeholder/skeleton loads forever if database has no synced tables (#74508)
- Athena sync never completes if user does not have
glue:GetDatabasespermission (#74092) - Background sync jobs not tracked in Usage Analytics (#73335)
- Permissions conflict when “All Users” set to None (#71300)
- Cache invalidation endpoint returns 404 (#66499)
Database
EnableArrow=0is ignored now, and there might be problems (databricks) (#76536)- Grouping with embedded fields does not show the full field path (#33698)
Embedding
- Theme acceptance text lacks link to usage terms (#76727)
Operation
- Serialization export reports success (exit code 0 / HTTP 200) when warnings produce empty output (#75176)
continue_on_errorandfull_stacktraceare ignored on serialization (#74622)- Cards with self-referencing filters are incorrectly marked as a circular dependency, breaking remote sync imports (#73133)
- Frontend crashes when notification payload is null (#73073)
- Questions with deeply nested MBQL can be exported, but not imported using remote sync (#71590)
- Serialization of instances with a massive amount of fields leads to OOM crashes (#57737)
Organization
- Schema breadcrumb missing after refreshing table opened in the Query Builder (#75393)
- Removing a chart with supporting text at the beginning of a document causes the document to crash (#75137)
- Unable to restore items from synced collection (#73449)
- Shift+scroll does not work in the data picker (#66456)
Querying
- Escape doesn’t close “Discard your changes?” warning in Model’s New Action modal (#75562)
- API-created filters open Custom Expression editor (#75144)
- Switching the database on SQL models will make dependent cards unable to find the source (#74561)
- We duplicate the columns on column pickers when table has remapped fields (#74177)
- ClickHouse boolean SETTINGS values (true/false) not handled correctly in native queries (#73431)
- WITH RECURSIVE no longer functioning with Clickhouse… (#73161)
- Notebook editor shows wrong table with multiple joins (#72823)
- Dependency graph hides hidden upstream tables (#71630)
- Column selection lost after doing drill-through (#69105)
- Saving changes to sql question shows the “these changes will break some other things” popup with the question that I’m saving (#67973)
- Self-joined column not being remapped (#67808)
- Inactionable Error Message when Using Custom Expressions in Unsupported Ways (#65218)
- Cannot Select Columns in the Query Builder After Joining a Native SQL Model (#64779)
- Query error line numbers do not match lines in SQL editor (#64133)
- Incorrect model metadata overrides after changing the query and removing a column with the same name (#60930)
- Metric name wrong when first added to Summarize step (#58307)
- Column filters on binned columns not working as expected (#15334)
- Drill through menu doesn’t show up on
Otherpie slices (#5334)
Dashboards
- Breadcrumbs for saved questions located within dashboards look broken (#76202)
- Cannot search for Documents in Link dashcards (#75485)
- Stale dashboard name shown after renaming (#75184)
- Dashboard filter bypasses cached FieldValues when FK remapping exists, generating an expensive JOIN that can OOM on large tables - Clickhouse specific (#74154)
- “Save” button remains disabled when editing axis configurations in Dashboards (#73152)
- Row count differs when question is connected to an empty dashboard filter (#48439)
- Can’t Make Use of Visualizer if Underlying Questions Returns “No Results” by Default (#64468)
Visualization
- Toast crashes because color operations fail on colors defined using
color-mix(#77124) - Drag, options, and remove buttons in Data tab of chart settings look wrong (#76201)
- Select components in chart settings look wrong (#76200)
- Non-overlapping conditional formatting color ranges on the same column are not applied (#75933)
- Misaligned chevron in Progress chart “Goal” setting (#75782)
- Y-axis auto positions lines incorrectly in charts (#75701)
- Conditional formatting does not work if the mini bar chart is enabled (#75095)
- Tick labels may be clipped and missing the currency symbol when there are both compact and full-notation labels (#74568)
- Pivot Tables no longer Return “No Results” (#74387)
- Time offset wrong in dashcard viz in 0.59.10 (#73972)
- Line chart zero-fill skips the week across DST spring-forward (#71811)
- Bars overlap on monthly time series chart (#71634)
- Select overflows viz settings popover (#71493)
- xlsx download delivers JSON (#70365)
- Loss of Date Granularity on Trend Viz in Native Questions (#69525)
- Time grouping with native questions - period names are incorrectly formatted when using Ordinal for X-axis scale (#68179)
Other
See other bug fixes
- Wrong colors in dark mode in
getTextColorForBackgroundfunction (#76593) - unable to render this card on pdf subscription (#76542)
- MCP
searchdocs claim it finds cards/dashboards/collections, but it only returns tables/metrics/models (#76317) - Command palette actions search gives undesired results (#76055)
- CSV exports opened in Excel don’t respect the GBP symbol (#75875)
- Middle click does not work on search results (#75596)
- Public Links for Pivot Tables: Download does not preserve pivot formatting (#75545)
- Some icons have wrong color in the question’s info panel (#75469)
- Metabot analysis fails on valid multi-series row charts (#74862)
- MCP server unreliably paginates large datasets, may tell pagination is not supported (#74369)
- Timeseries charts shows incorrect Date Ranges on hover when it detects “Weekly” data (#73005)
- Deadlock updating dashboard last_viewed_at in multi-master setup (#72929)
- Agent API and MCP
searchtools/endpoints cannot search for models (#72886) - Remote sync gets stuck on a deleted remote branch (#72778)
- Tables created by deleted transforms can’t be accessed in Data Studio (#72542)
- Remote sync fails if temp directory is deleted, until instance restart (#71364)
- Permission graph error if there are more than 65K collections (#70596)
- Opening a non-existent transform from Data Structure folder breaks the UI (#69904)
Already Fixed | 63.0-beta
Issues confirmed to have been fixed in a previous release.
Database
- Truncated date options in summarize menu don’t group by truncated data for custom columns (#27808)
Querying