dbt v2 issue health

Open engine:v2 issues in dbt-labs/dbt-core (epics excluded unless noted)

Data as of 2026-10-20 · dbt-labs/dbt-core · label engine:v2 · rendered from /home/runner/work/fusion_issue_analysis/fusion_issue_analysis/data/serve/fusion_issues.duckdb via ggsql → Vega-Lite

Where do things stand?

Open issues
515
+52 in 28 days
Opened / closed (28d)
131 / 79
Awaiting triage
334
median age 147 days
Answered within 48h (28d)
10%
median first reply 87.5 h
Median days to close (28d)
17.1
Customer-reported open
19
0 hard blockers
ggsql query (01_headline_kpis.sql)
-- tile: headline_kpis
-- type: kpi
SELECT * FROM headline_kpis

Is the backlog shrinking?

Open issues over time

Open at the end of each week, by type

ggsql query (02_backlog_weekly.sql)
-- tile: backlog_weekly
-- Category names are prefixed with their palette order so ggsql stacks them
-- feature, bug, task, other; RENAMING restores the labels.
SELECT
    week::DATE AS week,
    CASE issue_category WHEN 'feature' THEN '1 feature' WHEN 'bug' THEN '2 bug'
        WHEN 'task' THEN '3 task' ELSE '4 other' END AS issue_type,
    open_issues
FROM backlog_weekly
ORDER BY week
VISUALISE week AS x, open_issues AS y, issue_type AS fill
DRAW area
SCALE x VIA date
SCALE DISCRETE fill FROM ['1 feature', '2 bug', '3 task', '4 other']
    TO ['#2a78d6', '#eb6834', '#1baf7a', '#898781']
    RENAMING '1 feature' => 'Feature', '2 bug' => 'Bug', '3 task' => 'Task', '4 other' => 'Other'
LABEL x => null, y => 'Open issues', fill => 'Type'

Opened vs closed per week

Complete weeks; when closed > opened the backlog shrank

ggsql query (03_weekly_flow.sql)
-- tile: weekly_flow
-- week stays a string so dodged bars get a band per week (on a temporal
-- axis they render as hairlines).
SELECT week, 'opened' AS series, opened AS issues FROM weekly_flow
UNION ALL
SELECT week, 'closed' AS series, closed AS issues FROM weekly_flow
ORDER BY week, series DESC
VISUALISE week AS x, issues AS y, series AS fill
DRAW bar
    SETTING position => 'dodge'
SCALE DISCRETE fill FROM ['opened', 'closed'] TO ['#eb6834', '#2a78d6']
    RENAMING 'opened' => 'Opened', 'closed' => 'Closed'
LABEL x => 'Week', y => 'Issues', fill => null

Are we keeping up with triage?

Open issues by triage status and age

How much is waiting, and for how long

ggsql query (04_triage_pipeline.sql)
-- tile: triage_pipeline
-- order: y
-- Age buckets are prefixed with age_bucket_order so ggsql stacks them young
-- to old; RENAMING restores the labels.
SELECT
    status_label,
    age_bucket_order || ' ' || age_bucket AS age,
    issue_count
FROM triage_pipeline
ORDER BY status_order, age_bucket_order
VISUALISE issue_count AS x, status_label AS y, age AS fill
DRAW bar
SCALE DISCRETE fill FROM ['1 0-7d', '2 8-30d', '3 31-90d', '4 91-180d', '5 180d+']
    TO ['#b7d3f6', '#86b6ef', '#5598e7', '#256abf', '#104281']
    RENAMING '1 0-7d' => '0-7d', '2 8-30d' => '8-30d', '3 31-90d' => '31-90d',
             '4 91-180d' => '91-180d', '5 180d+' => '180d+'
LABEL x => 'Open issues', y => null, fill => 'Age'

New issues answered within 48 hours

By week opened; unanswered issues count as misses

ggsql query (05_response_weekly.sql)
-- tile: response_weekly
SELECT week::DATE AS week, pct_responded_48h
FROM response_weekly
ORDER BY week
VISUALISE week AS x, pct_responded_48h AS y
DRAW line
    SETTING colour => '#2a78d6'
DRAW point
    SETTING colour => '#2a78d6'
SCALE x VIA date
SCALE CONTINUOUS y FROM [0, 100]
LABEL x => 'Week opened', y => '% answered within 48h'

Triage queue — oldest first

Open issues still labeled status:triage

#TitleIssue categoryAge daysDays idleReactionsCommentsCustomer reported
#13123Release Postgres adapter supportFeature51184321
#13130Release Spark adapter supportFeature5114773
#13198[FEAT] [VSCE] Prefer parent errors over downstream errors when picking which 100 errors to showFeature50513301
#13221[FEAT] [VSCE] double-clicking a model from a local package should open the file in its workspace, not the symlinked dbt_packages dirFeature50313301
#13312[FEAT] Add ability to output `show` results as a CSVFeature4906207
#13528[FEAT] Report on adapter.execute calls at parse timeFeature4474244
#13601[FEAT] Support All Purpose Compute Clusters for dbxFeature4284215
#13645[FEAT] [databricks] merge multiple matches conditions/multiple actionsFeature4196303
#13661[FEAT] `static_analysis` config for sourcesFeature4189505
#13705[FEAT] Support macros or `generate_database/schema_name` in source configurationsFeature41098114
#13756[FEAT] Snowflake grants - support database rolesFeature39911002
#13904[FEAT] Allow for project-specified source field descriptions instead of polling the warehouseFeature3689701
#14047[FEAT] dbt Extension should auto-detect git branch to generate the right schema name during invocationFeature32010201
#14116[FEAT] Databricks `stack` table-valued functionFeature29513301
#14173[FEAT] Option to view tags in the lineage viewFeature2729501
#14214[FEAT] Downstream models should inherit results of relevant upstream testsFeature2607344
#14283[FEAT] `copy_partitions` should be parallelizableFeature2427504
#14381[FEAT] Allow `static_analysis` be set as a global flagFeature21791112
#14399[FEAT] VSCE: When hovering over something that would work in strict mode, but you're in baseline/off mode, create a hover that explains what's wrongFeature2169800
#14408[ERROR UX] Support Driver Debug LoggingFeature2149013
#14409[security] validate SQL Injection in list_relations via Unescaped Schema InterpolationBug2149800
#14410[security] validate SQL Injection in `get_columns_batch` via Asymmetric EscapingBug2149800
#14411[security] validate SQL Injection via Unescaped ColumnTypeInfo.duckdb_type in hydrate_with_type_conversionBug2149800
#14412[security] validate SQL Injection in get_columns via Unquoted relation_name in DESCRIBE StatementBug2149700
#14445[FEAT] LSP column definitions in * hoverFeature20413300
#14489[FEAT] Redshift External OAuth: Support token-based authentication in dbt FusionFeature193503yes
#14611[FEAT] Redshift CREATE EXTERNAL FUNCTION supportFeature1619011
#12944[Bug] dbt appears to build a schema cache out of all schemas in the project - even if the selection was just 1 modelFeature1615203
#14632BigQuery: silent jobRateLimitExceeded causes compile freeze on shard-heavy projectsBug1548013
#14637[Feature] Add Exposures + Semantic Layer visibility to VS Code CatalogFeature1529800
#14657[Trino] Add typechecking support for ANY_VALUEFeature14713300
#14656[Databricks] Add typechecking support for AGGFeature14713300
#14659[Duckdb] Add typechecking support for APPROX_TOP_KFeature14713300
#14660[Redshift] Add typechecking support for ARRAY_CONTAINSFeature14713300
#14662[Trino] Add typechecking support for ARRAY_HISTOGRAMFeature14713300
#14661[Databricks] Add typechecking support for AI_EXTRACTFeature14713300
#14664[Redshift] Add typechecking support for ARRAY_EXCEPTFeature14713300
#14663[Duckdb] Add typechecking support for HISTOGRAM_VALUESFeature14713300
#14667[Databricks] Add typechecking support for AI_GENERATE_TEXTFeature14713300
#14669[Duckdb] Add typechecking support for BIT_POSITIONFeature14713300
#14670[Trino] Add typechecking support for EXTRACTFeature14713300
#14671[Redshift] Add typechecking support for ARRAY_POSITIONSFeature14713300
#14673[Duckdb] Add typechecking support for SET_BITFeature14713300
#14674[Trino] Add typechecking support for JSON_EXISTSFeature14713300
#14676[Duckdb] Add typechecking support for ERAFeature14713300
#14677[Trino] Add typechecking support for JSON_QUERYFeature14713300
#14678[Redshift] Add typechecking support for ARRAYS_OVERLAPFeature14713300
#14680[Duckdb] Add typechecking support for TIMEZONE_MINUTEFeature14713300
#14682[Trino] Add typechecking support for POSITIONFeature14713300
#14686[Trino] Add typechecking support for RANDOM_STRINGFeature14713300
ggsql query (06_triage_queue.sql)
-- tile: triage_queue
-- type: table
SELECT issue_number, title, issue_category, age_days, days_idle, reactions, comments,
       is_customer_reported, issue_url
FROM triage_queue
ORDER BY age_days DESC

Where is the work?

Open issues by area

Issues with several areas count in each

ggsql query (07_open_by_area.sql)
-- tile: open_by_area
-- order: y
SELECT
    area,
    CASE issue_category WHEN 'feature' THEN '1 feature' WHEN 'bug' THEN '2 bug'
        WHEN 'task' THEN '3 task' ELSE '4 other' END AS issue_type,
    issue_count
FROM open_by_area
ORDER BY area_total DESC, area
VISUALISE issue_count AS x, area AS y, issue_type AS fill
DRAW bar
SCALE DISCRETE fill FROM ['1 feature', '2 bug', '3 task', '4 other']
    TO ['#2a78d6', '#eb6834', '#1baf7a', '#898781']
    RENAMING '1 feature' => 'Feature', '2 bug' => 'Bug', '3 task' => 'Task', '4 other' => 'Other'
LABEL x => 'Open issues', y => null, fill => 'Type'

Open issues by adapter

Issues with adapter labels

ggsql query (08_open_by_adapter.sql)
-- tile: open_by_adapter
-- order: y
SELECT
    adapter,
    CASE issue_category WHEN 'feature' THEN '1 feature' WHEN 'bug' THEN '2 bug'
        WHEN 'task' THEN '3 task' ELSE '4 other' END AS issue_type,
    issue_count
FROM open_by_adapter
ORDER BY adapter_total DESC, adapter
VISUALISE issue_count AS x, adapter AS y, issue_type AS fill
DRAW bar
SCALE DISCRETE fill FROM ['1 feature', '2 bug', '3 task', '4 other']
    TO ['#2a78d6', '#eb6834', '#1baf7a', '#898781']
    RENAMING '1 feature' => 'Feature', '2 bug' => 'Bug', '3 task' => 'Task', '4 other' => 'Other'
LABEL x => 'Open issues', y => null, fill => 'Type'

How close are the epics?

Open epics by % of sub-issues closed

Top of the list can be closed out soon

#TitleChild closedChild totalPct completeMilestone title
#13819[EPIC] BigQuery Structured and Semi-Structured Types44
100%
#14205[EPIC] missing graph and result objects2424
100%
#15085[EPIC] [Databricks] Data Sketching Functions (KLL, Theta, Tuple)4446
96%
#15084[EPIC] [Databricks] Geospatial Functions9599
96%
#14297[EPIC] Packages & Dependencies2224
92%
#15091[EPIC] [Databricks] Semi-structured & Variant Functions89
89%
#15092[EPIC] [Databricks] Conditional & Type Conversion Functions89
89%
#15086[EPIC] [Databricks] Vector Functions78
88%
#14397[EPIC] Core Compilation Papercuts1822
82%
#14469[EPIC] Post-GA UX Improvements1721
81%
#15093[EPIC] [Databricks] Array, Map & Window Functions1114
79%
#14420[EPIC] [SPAN] Incorrect or missing error/warning spans68
75%
#14585[EPIC] ClickHouse v2 milestone68
75%
#15088[EPIC] [Databricks] Aggregate & Approximate Functions1014
71%
#15094[EPIC] [Databricks] SQL Language Core & Semantics1015
67%
#14431[EPIC] [VSCE] Extension UX & Polish1218
67%
#14291[EPIC] [VSCE] QoL UX improvements58
63%
#14429[EPIC] [VSCE] Lineage View58
63%
#14425[EPIC] [Snowflake] Adapter & Platform Issues813
62%
v2.0
#14391[EPIC] BigQuery1731
55%
#15095[EPIC] [Databricks] Grouping & Data Format Functions510
50%
#14393[EPIC] DuckDB818
44%
#14619[EPIC] Cross-adapter SQL Understanding Bugs25
40%
#15265[EPIC] [Catalogsv2] DuckDB Expand Iceberg REST catalog support38
38%
#15096[EPIC] [Databricks] Platform, Admin & Compute Built-ins616
38%
#14487[EPIC] LSP39
33%
#15255[EPIC] [DuckDB] SQL Understanding14
25%
#15104[EPIC] [Trino] SQL Understanding111
9%
#15103[EPIC] [Redshift] SQL Understanding116
6%
#15886[EPIC] Promote 2.0's json-schema02
0%
v2.0
#15100[EPIC] [DuckDB] Struct, Union & Composite Type Functions08
0%
#16774[EPIC] [Catalogsv2] Spark Iceberg catalog support08
0%
#15087[EPIC] [Databricks] AI/LLM & Streaming Ingestion Functions09
0%
#15089[EPIC] [Databricks] IP & Network Functions014
0%
#15101[EPIC] [DuckDB] Date, Time & UUID Functions015
0%
#15102[EPIC] [DuckDB] System, Utility & Aggregate Functions016
0%
#15099[EPIC] [DuckDB] Math, Arithmetic & Bitwise Functions018
0%
#15098[EPIC] [DuckDB] String & Binary Functions020
0%
#15097[EPIC] [DuckDB] Array & List Functions036
0%
ggsql query (09_epic_progress.sql)
-- tile: epic_progress
-- type: table
SELECT epic_number, title, child_closed, child_total, pct_complete, milestone_title, issue_url
FROM epic_progress
ORDER BY pct_complete DESC, child_open, epic_number

What should we work on, and who is on it?

Most-requested open issues

Ranked by reactions, then comments

#TitleIssue categoryAreasTriage statusReactionsCommentsAge daysCustomer reported
#13131Release Starburst Trino supportFeatureadapters, trinotriaged5319511
#13123Release Postgres adapter supportFeatureadapters, postgresawaiting_triage4321511
#13822Release AWS Athena supportTaskadapters, athenatriaged3813389
#13102Expose a Python API with Rust bindings, enabling programmatic invocations of top-level dbt commandsFeatureenginetriaged2214511
#16487[v2 Bug] BigQuery: nested column descriptions and policy tags are not persistedBugadapters, bigqueryawaiting_triage17023yes
#13705[FEAT] Support macros or `generate_database/schema_name` in source configurationsFeatureengineawaiting_triage114410
#13138Support for custom adaptersTaskadapterstriaged104511
#16252[Feature] Athena adapter for dbt Core 2.0Featureadapters, athenatriaged71542
#13130Release Spark adapter supportFeatureadaptersawaiting_triage73511
#13848[FEAT] Highlight the current model in the lineage paneFeaturevscodetriaged61382
#14373[FEAT] Add AWS Glue adapter supportFeatureadapterstriaged50221
#15804[v2 Bug] dbt-fusion: HTTP client breaks behind corporate SSL inspection proxies and ignores SSL_CERT_FILEBugenginetriaged4577
#13528[FEAT] Report on adapter.execute calls at parse timeFeatureawaiting_triage44447
#14214[FEAT] Downstream models should inherit results of relevant upstream testsFeatureengineawaiting_triage44260
#14383[BUG] [BigQuery] Partition pseudo-columns included in SELECT * expansion, causing false dbt0301 UNION ALL mismatchBugbigquery, static-analysisneeds_repro32217
#14514DuckDB bugbash: Python model parityFeatureadapters, duckdbhas_repro32188
#14358[BUG] [BigQuery] Static analyzer rejects valid BigQuery pipe syntax (FROM ... |>)Bugbigquery, static-analysisneeds_repro31224
#14277[BUG] SELECT WITH is not supported for BQBugstatic-analysisneeds_repro30243
#13665[BUG] No column level auto-complete in vscodeBugvscodeneeds_repro212414
#14462BigQuery: show `...GiB processed` annotation in execution logs after create operationsFeatureadapters, bigquerytriaged23197
#13514[FEATURE] Support static analysis of Recursive CTEsBugadapters, databricks, static-analysishas_repro22448
#13666[FEAT] Support star-expansion of columns in vscodeFeaturevscodetriaged22414
#15533[Feature] Static analysis support for BigQuery ML/AI inference table functions with MODEL arguments (ML.PREDICT, AI.*)Otherstatic-analysisawaiting_triage2298
#16407[v2 Bug] Microbatch models no longer show per-batch start/completion progress in CLI logsBugadapters, snowflakeawaiting_triage2127
#15664v2.0.0 Release: Planned ScheduleOthercicdtriaged2089
ggsql query (10_top_requested.sql)
-- tile: top_requested
-- type: table
SELECT issue_number, title, issue_category, areas, triage_status, reactions, comments,
       age_days, is_customer_reported, issue_url
FROM top_requested
ORDER BY reactions DESC, comments DESC

Open issues by assignee

Top 15, excluding unassigned

ggsql query (11_assignee_workload.sql)
-- tile: assignee_workload
-- order: y
SELECT
    assignee_login,
    CASE issue_category WHEN 'feature' THEN '1 feature' WHEN 'bug' THEN '2 bug'
        WHEN 'task' THEN '3 task' ELSE '4 other' END AS issue_type,
    issue_count
FROM assignee_workload
ORDER BY assignee_total DESC, assignee_login
VISUALISE issue_count AS x, assignee_login AS y, issue_type AS fill
DRAW bar
SCALE DISCRETE fill FROM ['1 feature', '2 bug', '3 task', '4 other']
    TO ['#2a78d6', '#eb6834', '#1baf7a', '#898781']
    RENAMING '1 feature' => 'Feature', '2 bug' => 'Bug', '3 task' => 'Task', '4 other' => 'Other'
LABEL x => 'Open issues', y => null, fill => 'Type'