Latest Release Notes
6 October 2026
Find the 2.0.4 GitHub release.
Changelog
OpenMetadata 2.0.4 is a maintenance release. It improves connector reliability for AWS Glue, Snowflake, SQL Server, and Datalake. It also fixes search scoping and Explore counts, data quality and the profiler, and the bot bulk-import path.🔌 Connectors & Ingestion
- AWS Glue: table parameters weren’t captured #34269: Glue table parameters are now ingested as custom properties.
- SQL Server: table synonyms weren’t ingested #33415 (#31829, #33375): SQL Server synonyms are now ingested as table aliases and allowed through the entity patch.
- Snowflake: the overflow retry skipped subclassed sum, mean, and standard-deviation metrics #34396: The overflow-retry fallback now keeps subclassed
Sum,Mean, andStdDevmetrics instead of dropping them. - Datalake: MF4 file reads failed after a
canmatrixupdate #34419: Pinscanmatrixbelow 1.3 soasammdfimports again and MF4 reads work. - Ingestion could break under SQLAlchemy 2.1 #34259: Caps SQLAlchemy below 2.1 to keep ingestion working.
📊 Data Quality
- A test case’s status followed the last result written or deleted, not the newest one #34285: A late older result, or deleting the newest result, could overwrite the status and even auto-resolve a newer failure’s incident. Status now always reflects the newest result.
- The Test Definition “Supported Services” picker listed the
DbtandQueryLogpseudo-types #34624: These have no connection schema, so a test definition restricted to one silently vanished from the Add Test Case picker. Both are now filtered out. - Setting a 0% profile sample silently discarded the Profiler Settings config #34625: A
0%or0-row sample saved nothing while still showing a success toast, and a stored0would force a full-table scan. A non-zero sample is now required.
🔀 Lineage
- Upstream data quality failures were missed once an instance had more than 100 test cases #34286: The upstream-failure check kept only the 100 busiest test cases before filtering, dropping failing upstream tables. It now uses one exact, batched lookup on the test case index.
🔍 Search & Discovery
- Searches ran against the whole cluster instead of the tenant’s alias #33893: Search requests now scope to the cluster alias, so a search role confined to its own
<clusterAlias>*prefix is no longer denied with a 403. - Plain-text natural-language query (NLQ) and aggregate searches were slow and over-broad #34393: The NLQ keyword fallback and aggregate text now go through the search builder with a field list, instead of an unscoped
query_stringacross every index field. - Explore tab counts didn’t match the result rows #34398: Counts could include fuzzy-only matches absent from the rows. They now use the same authorized, configured matching as each tab, and each tab renders as soon as its own request finishes.
- Data Marketplace list search was off-center and keyword-only #34252: The Data Marketplace list search is now centered and supports natural-language search.
📈 Data Insights
- Data Insights summary cards and asset charts counted test case results #33415 (#31759, #33049): Summary cards no longer count test case results, and the data asset charts are re-scoped in SQL.
🛡️ Data Governance & Quality
- Approving a tier change left an asset with two mutually exclusive tiers #34288: A tier approval now replaces the existing tier through the normal entity patch, increments the version, and records the tag change.
🎛️ UI
- Personas had no default landing page #34312: Adds persona General Preferences with a configurable default landing page.
- What’s New showed a raw version, and opening an asset from an Assets tab card lost the breadcrumb #34685: What’s New now shows a human-readable version and release date, and the full breadcrumb is kept when opening an asset from an Assets tab card.
📣 Alerts & Events
- Testing an alert with only unconfigured destinations returned a 400 error #34626: Clicking Test Destinations when every external destination is unconfigured now skips the request instead of sending an empty destination list.
⚙️ Platform & Operations
- Data Retention deleted charts that no dashboard used #34105: Data Retention no longer removes charts that aren’t referenced by any dashboard.
- Elasticsearch request compression wasn’t configurable #34635: Adds a
requestCompressionEnabledsetting on the Elasticsearch configuration. - Bot bulk imports blanked fields the source didn’t send #34671: With
overrideMetadata=true, a bot bulk PUT no longer blanks a storeddescriptionordisplayNameit doesn’t send, andtableConstraintsare preserved when the bot sends none.