From c44b46d4b2c4dce0ec7e8227d847606c2b4d0d99 Mon Sep 17 00:00:00 2001 From: Gal Shubeli Date: Thu, 13 Aug 2026 15:40:58 +0300 Subject: [PATCH] fix: require falkordb>=1.7 so redis 8.1 installs are not broken MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit falkordb's cluster probe forwarded async-pool connection_kwargs to the sync redis.Redis() constructor, which rejects the pool-internal keys redis 8.1 added. The first query failed with a TypeError surfaced as DatabaseUnavailableError; ping() still returned True, so health checks passed and only real work broke. Fixed upstream in falkordb 1.7.0. Moving our floor to >=1.7 is what makes that guaranteed: >=1.0 still allowed 1.6.x, which declares an unbounded redis>=7.1.0 and can resolve against the broken redis. redis stays undeclared — falkordb owns it, and 1.7 bounds it to >=7.2,<8.2. Verified end-to-end against a live FalkorDB on redis 7.2.0, 7.4.1, 8.0.1 and 8.1.0. Full suite: 1096 passed, 40 skipped. Co-Authored-By: Claude Opus 5 (1M context) --- CHANGELOG.md | 8 ++++++++ graphrag_sdk/pyproject.toml | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6934b936..b3dacd98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- **`redis` 8.1 broke the first query on every fresh install** — + `falkordb`'s cluster probe forwarded async-pool kwargs to the sync + `redis.Redis()` constructor, which rejects them. Fixed upstream in + `falkordb` 1.7.0, so the floor moves to `falkordb>=1.7` — the old + `>=1.0` still allowed 1.6.x to resolve against the broken redis. + ## [1.4.0] - 2026-08-10 Chunk-level extraction cache for `update()` (#288): re-ingesting a diff --git a/graphrag_sdk/pyproject.toml b/graphrag_sdk/pyproject.toml index 45fe9af6..a2d8650e 100644 --- a/graphrag_sdk/pyproject.toml +++ b/graphrag_sdk/pyproject.toml @@ -33,7 +33,9 @@ classifiers = [ dependencies = [ "pydantic>=2.0,<3.0", - "falkordb>=1.0,<2", + # >=1.7: earlier versions crash on redis 8.1 and don't bound it. + # falkordb owns the redis dependency, so it isn't declared here. + "falkordb>=1.7,<2", "numpy>=1.24,<3", "python-dotenv>=1.0", "tiktoken>=0.5,<1.0",