Data and AI struggles

1,730 problems · 342 companies

Outages and change

DuckDB upgrades break working setups

37 posts from 28 people20d activeFading, +0 this week

Posts per day

Posts per day37 posts, Sep 17 to Nov 9

The posts behind it

GitHub issuesapache/airflow · cooley-hiNov 2

Amazon provider 9.38.0+: AwsDuckDBHook imports duckdb at module level, segfaulting preloaded gunicorn workers on exit

### Apache Airflow Provider(s) amazon ### Versions of Apache Airflow Providers `apache-airflow-providers-amazon` 9.38.0 and 9.39.0 (`hooks/duckdb.py` is unchanged on `main`). 9.37.0 is not affected because it has no `hooks/duckdb.py`. ### Apache Airflow version 2.11.2 ###...

1 replies
GitHub issuesduckdb/duckdb · tomjakubowskiOct 30

Parser regression in 2.0: COALESCE() not allowed in CREATE SECRET

### What happens? I am upgrading from DuckDB 1.5.6 to 2.0.0 and noticed a regression in the parser for `CREATE SECRET`, where `COALESCE(...)` cannot be parsed in a position where it was previously allowed. I can work around this by using `SET VARIABLE` and `getvariable()`, but...

GitHub issuesduckdb/duckdb · salarsayyadOct 30

2.0 regression: type_pushdown turns TRY_CAST over read_csv into a strict cast (Conversion Error)

### What happens? In 2.0.0, `TRY_CAST(col AS DOUBLE)` over a `read_csv` column that is read as `VARCHAR` raises a conversion error on the first non-numeric value, instead of returning `NULL`. In 1.5.6 the same query returns `NULL` for that row. The new `type_pushdown` optimizer...

1 replies
GitHub issuesduckdb/duckdb · lamaeldoOct 30

ARRAY row-selection regression in DuckDB 2.0, especially in CASE comparisons

### What happens? Fixed-size `FLOAT[N]` embedding comparisons are slower in DuckDB 2.0.0 than in 1.5.6 when used in a CASE expression containing a NULL/exact-match guard followed by several cosine thresholds. All result counts match. A single-cosine control is much less...

GitHub issuesduckdb/duckdb · BlackSakura3COct 30

rowids change within a transaction when a checkpoint vacuums the table

### What happens? A rowid that a transaction has read can point to a different row, or to no row at all, a moment later, because another connection ran a checkpoint that vacuumed the table in between. No error is raised: queries return wrong rows, and `DELETE`/`UPDATE` by rowid...

GitHub issuesduckdb/duckdb · prabh1512Oct 29

Wrong result: comparing a negated DOUBLE column with a NaN constant returns the wrong rows (regression vs v1.5.6; correct with expression_rewriter disabled)

### What happens? A comparison of a negated DOUBLE column with a NaN constant returns wrong rows. DuckDB orders NaN above every other value (including infinity), so `-d > 'nan'::DOUBLE` is false for every row and must return no rows, and `-d 'nan'::DOUBLE`, query 2 is `-d c] as...

1 replies
GitHub issuesduckdb/duckdb · rustyconoverOct 29

Hash join pushes no min/max bounds to table functions when it chooses a prefix-range filter (regression from v1.5)

### What happens? On v2.0, when a hash join chooses a prefix-range filter for an equality key, `JoinFilterPushdownInfo::FinalizeFilters` registers the PRF and `continue`s past `CreateDynamicMinMaxFilters`. The probe-side scan then gets no min/max bounds. That is fine for DuckDB...

GitHub issuesdbt-labs/dbt · tsantonOct 27

DuckDB: expose connect-time config_options in profiles.yml

Related to the [DuckDB adapter epic, #14393](https://github.com/dbt-labs/dbt/issues/14393). ## Problem Please support a `config_options` profile mapping that is passed to DuckDB before the database is opened, matching the purpose of `config_options` in the Python `dbt-duckdb`...

GitHub issuesduckdb/duckdb · ptu-ghOct 27

INTERNAL Error "dict-surviving cache: global dictionary column N changed identity" when a CASE passes a joined global dictionary through for some chunks only (v2.0.0 regression)

### What happens? A query joins two tables, computes a column with a CASE whose ELSE branch is a column from the join's build side, and filters selectively on the result. It throws an internal error and invalidates the database: In the reproduction under "To Reproduce", a hash...

GitHub issuesduckdb/duckdb · rustyconoverOct 27

HTTP PUT requests retain a reference to the caller’s content-type string

### What happens? `PutRequestInfo` stores `content_type` as `const string &`. Modifying the caller's string after constructing a request changes the request's content type. If that string is destroyed, the request retains a dangling reference. The request should own its content...

GitHub issuesduckdb/duckdb · guijinxinOct 27

Incorrect narrowing cast causes DISTINCT SUM to fail after wrapping a predicate in CASE

...should not change the result. Additional observations: - Removing `DISTINCT` from the failing query makes it return `400`. - In the original reproduction, both `PRAGMA disable_optimizer` and disabling only `compressed_materialization` avoid the error. - The original failing plan...

1 replies
GitHub issuesduckdb/duckdb · hanke580Oct 22

After a COMMIT fails, acknowledged INSERTs into the same table are lost after CHECKPOINT and reopen (storage version < v2.0.0, table with an index)

...that runs DML on table `a`, `ALTER TABLE a`, and also inserts into `b`. That transaction fails to commit with a spurious "another transaction has altered this table" (fixed on main). - 1.4.5 keeps the rows in both the WAL-error and the single-connection variant. Likely cause...

GitHub issuesduckdb/duckdb · hanke580Oct 22

`CREATE INDEX` racing a committed UPDATE of the indexed column keeps the old value in the ART: lookups miss the row by its new value and return it for its old value, also after restart

### What happens? One connection runs `CREATE INDEX ib ON t(b)`. Another connection commits `UPDATE t SET b = ... WHERE id = ...` while the index is being built. Both statements succeed. Afterwards the index holds the row under its old value: - `WHERE b = ` (index scan) returns...

GitHub issuesduckdb/duckdb · hanke580Oct 22

ALTER COLUMN ... TYPE still drops an UPDATE that commits while the column is being rewritten (after #25008)

### What happens? An UPDATE that commits while another connection's `ALTER TABLE ... ALTER COLUMN ... TYPE` is rewriting that column reports success. Its change to the retyped column is then lost, while its change to the other columns stays. The loss persists after close and...

GitHub issuesduckdb/duckdb · AlistormOct 22

Parquet: nested columns read on demand skip the external file cache, so every scan reads them again (regression from 1.5)

...again (2.37 MB at offset 1138) in one read, and only f is registered for prefetch. Workarounds I found: - Writing the file with DATA_PAGE_SIZE_LIMIT 524288 makes the pages fit the fallback buffer, and the second scan reads 0 bytes. - read_parquet(..., prefetch_strategy =...

GitHub issuesduckdb/duckdb · hungcsOct 21

Wrong results for sum() over a LEFT JOIN with an empty right side (statistics propagation, regression in 2.0.0)

### What happens? Since v2.0.0, `sum()` over a LEFT JOIN against an empty table can give wrong results. Comparisons on the sum are folded to the wrong constant, and an integer sum can silently overflow. v1.5.6 returns the correct results. Disabling the `statistics_propagation`...

1 replies
GitHub issuesduckdb/duckdb · chriscoeyOct 21

CREATE VIEW rejects fully qualified `db.db.t` as ambiguous when the view is in `db` (2.0.0 regression)

### What happens? On 2.0.0, `CREATE VIEW` in a database fails when its body references a table of that database by its fully qualified name and the table's schema shares a name with an attached database, including the view's own: The same reference works in `SELECT`, in `CREATE...

2 replies
GitHub issuesduckdb/duckdb · hanke580Oct 20

Files written with `STORAGE_VERSION 'v1.3.x'` by DuckDB ≥ 1.4 are read as all-NULL strings by DuckDB 1.3 (block-less DICT_FSST validity segment)

### What happens? A database written by DuckDB 1.4.0 or later (including current main) with `STORAGE_VERSION 'v1.3.2'` (or `storage_compatibility_version = 'v1.3.2'`) opens in DuckDB 1.3.0-1.3.2 without an error, but every string of a `DICT_FSST`-compressed `VARCHAR` column is...

1 reactions
GitHub issuesduckdb/duckdb · skuirrelsOct 20

Performance regression from 1.5.6 to 2.0: about 2x per-statement overhead (prepare and execute)

### What happens? Every statement costs about 2× as much on 2.0 as on 1.5.6: plain `SELECT`, `EXECUTE` of a prepared statement and `SELECT 1` alike. It's a fixed per-statement cost, so it hits OLTP-style workloads and client drivers. A .NET driver benchmark shows prepared...

1 reactions3 replies
GitHub issuesduckdb/duckdb · hanke580Oct 19

CSV round trip with default options strips single quotes: `COPY TO` writes `'x'` unquoted, `COPY FROM` sniffs `'` as the quote character

### What happens? `COPY s TO 't.csv'` followed by `COPY d FROM 't.csv'`, both with default options, changes every value that is wrapped in single quotes: `'x'` comes back as `x`, and `'2024-01-01'` as `2024-01-01`. There is no error and the row count is right. The file itself is...

GitHub issuesduckdb/duckdb · alpaylanOct 19

INTERNAL Error `physical_index != DConstants::INVALID_INDEX` in propagate_get.cpp when statistics fold a pushed-down filter's column away

### What happens? On current `main`, built with assertions enabled (`make relassert`), this valid query fails with an assertion INTERNAL error instead of returning an empty result. The v1.5.6 release returns 0 rows. After the error the database instance is invalidated. ## SQL ##...

GitHub issuesduckdb/duckdb · dlmrrOct 18

Performance regression from 1.5.6 to 2.0: recursive CTE joined to a large table scans the whole table at each step (dynamic filters no longer applied)

### What happens? A recursive CTE that walks a few steps from one node, joining a large table on a key the table is sorted by, reads the whole table on 2.0, where 1.5.6 reads only the matching row groups. The time grows with the table's size on 2.0 and stays flat on 1.5.6....

1 replies
GitHub issuesduckdb/duckdb · ZhangJieeeOct 14

IEJoin LEFT/RIGHT join crashes with INTERNAL Error when non-preserved side has a LIST column

### What happens? An IEJoin outer join (LEFT/RIGHT) whose non-preserved side carries a `LIST` column crashes with an internal error as soon as the list contents are consumed (writing it with CTAS, or `v[1]`): After the error the database is invalidated, so every later statement...

GitHub issuesduckdb/duckdb · h4nsmullerOct 14

INTERNAL Error "Failed to bind column reference" for SELECT DISTINCT over a FULL JOIN with a filter on one side and NOT IN on a column of the other side (regression since v1.5.6)

...`SELECT DISTINCT` over a `FULL JOIN` fails in the physical planner with an internal error when the `WHERE` clause has a filter on one join side and a `NOT IN (subquery)` on a column of the other side: The query is valid: it returns rows without `DISTINCT`, with `GROUP BY`...

1 replies
GitHub issuesduckdb/duckdb · h4nsmullerOct 14

Shell sets active_grammar_extensions=['shell'] wholesale, disabling grammar extensions registered by other loaded extensions

### What happens? Since #26914 the CLI runs `SET active_grammar_extensions=['shell']` on its connection right after opening the database ([`tools/shell/shell.cpp`](https://github.com/duckdb/duckdb/blob/v2.0-cyanoptera/tools/shell/shell.cpp#L1313)). The setting is assigned...

GitHub issuesduckdb/duckdb · kritoOct 12

Stale BlockHandle after DROP TABLE of a foreign-key parent: overflow strings read back wrong until reopen (1.3.2–1.4.5; fixed in 1.5.0, not in 1.4 LTS)

### What happens? After dropping a table that is referenced by a foreign key and checkpointing, strings stored in overflow blocks that reuse the dropped table's block id are read back with the **old block's bytes** for the rest of the session. The data on disk is correct:...

GitHub issuesduckdb/duckdb · oliverking2Oct 11

Planning time grows super-linearly with the number of count(DISTINCT) aggregates in 2.0 dev (regression from 1.5.5)

### What happens? On the 2.0 dev builds, planning a query with many `count(DISTINCT ...)` aggregates (one per column) is super-linear in the number of aggregates. The time is spent before execution: `EXPLAIN` alone takes as long as running the query. On 1.5.5 the same query...

1 replies
GitHub issuesduckdb/duckdb · ak-workitOct 6

INTERNAL Error "Failed to cast expression to type" in TopNWindowElimination when the filter has a range predicate and an OR (regression in 1.5.6)

...'%2%')` | OK | | `n BETWEEN 1 AND 50 AND (x LIKE '%1%' OR y LIKE '%2%')` | OK | | same failing query without the `QUALIFY` | OK | How we hit it in practice: `CAST(ts AS DATE) BETWEEN DATE '...' AND DATE '...'` on a `TIMESTAMPTZ` column, plus a free-text search `(col1 ILIKE ? OR...

GitHub issuesduckdb/duckdb · ylwango613Oct 2

ManualVuln35 NaN Quantile Bypasses Range Guard in approx_quantile and Aborts Process via Out-of-Bounds Index

### What happens? `CheckApproxQuantile` in `extension/core_functions/aggregate/holistic/approximate_quantile.cpp` (line 343) validates the quantile parameter with `if (quantile 1)`, but does not check for NaN before or after the range test. Because all IEEE 754 comparisons with...

GitHub issuesduckdb/duckdb · radumgOct 1

2.0 preview: repeated json_serialize_sql of tiny SELECTs is much slower than 1.5.5 (plain CLI reproduction)

### What happens? ## What happens? `json_serialize_sql` is much slower in this 2.0 preview when called for many small, distinct SQL strings. Serializing 1,000 trivial SELECTs takes about **4 ms on 1.5.5 versus 2.79 seconds on the preview** on the same Windows host. Every...

1 replies
GitHub issuesduckdb/duckdb · ylwango613Sep 23

NewVuln2: One-Byte Heap OOB Read in GZipFileSystem::UncompressGZIPString via FNAME Flag

### What happens? In `GZipFileSystem::UncompressGZIPString()` (`src/common/gzip_file_system.cpp`), the guard `if (size < GZIP_HEADER_MINSIZE)` permits `size == 10`, which leaves `body_ptr` equal to `data + size` after the header is consumed. When the `FNAME` flag is set in the...

GitHub issuesduckdb/duckdb · ylwango613Sep 23

NewVuln16: Use-After-Free in checkpoint() via PREPARE+DETACH+EXECUTE

### What happens? In `src/function/table/checkpoint.cpp`, `CheckpointBind()` stores the target `AttachedDatabase` as a raw `optional_ptr` in `CheckpointBindData::db` without retaining shared ownership. When `DETACH` is issued after the `PREPARE` transaction has committed, the...

GitHub issuesduckdb/duckdb · michael626Sep 22

Use-after-free of join-pushed table filters during read-ahead drain in TableScanGlobalSourceState teardown

### What happens? Non-deterministic SIGSEGV on an async I/O thread at query teardown: a read-ahead `FileOpenTask` copies the scan's table filters after the `TableScanGlobalSourceState` that owns them has already freed them. `TableScanGlobalSourceState`...

GitHub issuesduckdb/duckdb · hanke580Sep 22

a wide join containing an ANTI JOIN mis-binds its columns

...An eight-table join containing one `ANTI JOIN`, aggregated with `count(DISTINCT …)`, fails to bind after the join-order optimizer rewrites it: This is not a wrong answer - it is a hard failure on a query that is plainly valid, and *valid* is not a judgement call here: **the same...

1 replies
GitHub issuesduckdb/duckdb · u70b3Sep 19

Released 1.4.x–1.5.x: WAL replay with interleaved ALTER TABLE / CREATE INDEX corrupts unbound index buffers → SIGSEGV on next indexed write (fixed on main & v1.5 branch; no release tag contains the fix)

**Summary** A WAL that interleaves `CREATE INDEX` / `ALTER TABLE … ADD COLUMN` with row-data transactions poisons unbound index buffers during replay. On release builds (asserts off) the next index-maintaining write - or an automatic checkpoint - SIGSEGVs. On assert builds,...

GitHub issuesduckdb/duckdb · KyongSik-YoonSep 18

Segfault / INTERNAL Error in CompressedMaterialization::Compress for filtered ORDER BY ... LIMIT that eliminates all rows (2.x regression)

### What happens? On current 2.x nightlies, planning a `SELECT * ... WHERE (a = ... AND b LIKE ...) ORDER BY x, y LIMIT n` over a table where no row can pass the filter (e.g. an empty table) crashes inside the compressed materialization optimizer. Depending on the build it...

GitHub issuesduckdb/duckdb · kliszaqSep 17

Parquet reader truncates INT96 timestamps to microseconds; no way to read their nanosecond part

...their data through DuckDB changes values without a warning. There is currently no way to opt into the full precision: - casting the column to `TIMESTAMP_NS` happens after the value was already read at microsecond precision; - the `schema` parameter of `read_parquet` is keyed by...

2 replies

Companies and products named

37 posts
8 posts
3 posts
2 posts
2 posts
About this problem

Evidence

37 posts from 28 people in 3 places, about 5 a week over 47 days. Mostly on duckdb/duckdb, dbt-labs/dbt, apache/airflow. Tools named alongside: GitHub, Docker, PyPI, AWS.

Frustration Frustration 0 of 3· Seen on GitHub issues

Summary, model-written

DuckDB users experience performance slowdowns, crashes, corrupted WAL replays, unreadable compressed strings, and silently altered data values after updates or specific operations.

How it was grouped

Posts that state a pain and match the "breaking-changes" rule about DuckDB. First post Sep 17, 2026, latest Nov 2, 2026. Corroborated: 3 or more posts from 2 or more people or places. Method

The same problem elsewhere

GitHub upgrades break working setups

87 posts from 75 people on GitHub issues, Hacker News, Stack Overflow.

Upgrades and new releases break working setups

76 posts from 62 people on GitHub issues, Reddit, App Store reviews.

Claude Code upgrades break working setups

67 posts from 60 people on GitHub issues, Hacker News, Reddit.

Codex upgrades break working setups

65 posts from 58 people on GitHub issues, Reddit.

Claude upgrades break working setups

35 posts from 34 people on GitHub issues, Reddit, Hacker News.

ClickHouse upgrades break working setups

31 posts from 20 people on GitHub issues.

Anthropic upgrades break working setups

27 posts from 22 people on GitHub issues.

PyTorch upgrades break working setups

26 posts from 21 people on GitHub issues, Reddit.

ChatGPT upgrades break working setups

26 posts from 26 people on GitHub issues, Community forums, App Store reviews.

OpenAI upgrades break working setups

25 posts from 25 people on GitHub issues, Reddit, Community forums.

Open WebUI upgrades break working setups

25 posts from 2 people on GitHub issues.

Gemini upgrades break working setups

24 posts from 24 people on GitHub issues, Community forums, Reddit.

Other DuckDB problems

DuckDB users keep filing bugs

Top post: "latest alpha DuckDB 2.0 with Quack server on Windows/Linux got `Authentication failed` since several days ago", one of 23 posts from 15 people on GitHub issues.

Trouble with DuckDB internal

Top post: "duckdb 2.0.0 fails to launch on BE: `INTERNAL Error: The time zone data is corrupt`", one of 14 posts from 7 people on GitHub issues.

DuckDB error messages are cryptic

11 posts from 7 people on GitHub issues.

Trouble with DuckDB returns

Top post: "Comparison simplification returns an incorrect result when a narrowing `DECIMAL` cast is used", one of 9 posts from 9 people on GitHub issues.

Trouble with DuckDB join

Top post: "Segfault in `dense_rank() OVER ()` over a RIGHT_ANTI hash join that returns its unmatched rows", one of 9 posts from 8 people on GitHub issues.

Trouble with DuckDB column

Top post: "2.0 alpha: comparing a CASE/split_part result to a constant fails with BindBuiltinScalarFunction did not", one of 7 posts from 5 people on GitHub issues.

Trouble with DuckDB cast

Top post: "TRY_CAST of an empty BLOB to BIT escapes a non-fallible __cast and invalidates the database", one of 7 posts from 6 people on GitHub issues.

Trouble with DuckDB null

Top post: "DuckDB: `HAVING` of `(φ IS TRUE) OR NOT (φ IS TRUE) AND …` is empty for a NULL `φ`, but the same boolean as", one of 6 posts from 6 people on GitHub issues.

Trouble with DuckDB values

Top post: "ManualVuln37 Unbounded Recursion in EncodeVariantValue Causes Stack Overflow via variant_comparator on Deeply", one of 6 posts from 6 people on GitHub issues.

Experiments on DuckDB are hard to reproduce and track

6 posts from 4 people on GitHub issues.

Trouble with DuckDB parquet

Top post: "External file cache range metadata grows for deleted local Parquet files in v1.5.6 despite buffer eviction", one of 5 posts from 5 people on GitHub issues.

DuckDB costs outgrow the value it gives

4 posts from 4 people on GitHub issues.

History

Momentum went from steady to fading.

Nov 6, 2026

Momentum went from fading to steady.

Nov 2, 2026

Momentum went from steady to fading.

Oct 29, 2026

Momentum went from rising to steady.

Oct 26, 2026

Summary written by a model: DuckDB users experience performance slowdowns, crashes, corrupted WAL replays, unreadable compressed strings, and silently altered data values after updates or specific operations.

Oct 23, 2026

Momentum went from fading to rising.

Oct 23, 2026

Momentum went from steady to fading.

Oct 21, 2026

Momentum went from rising to steady.

Oct 19, 2026

Momentum went from fading to rising.

Oct 15, 2026

Momentum went from steady to fading.

Oct 13, 2026

Momentum went from rising to steady.

Oct 8, 2026

Momentum went from fading to rising.

Oct 7, 2026