Release Date: 22 August 2025
The Neo4j Aura August release has started to roll out, commencing on AuraDB Free and progressing to higher tiers later.Release Note for Neo4j 2025.08
Cypher
Cypher 25 additive features
- Added allReduce() function to Cypher 25. The allReduce() function is a boolean expression designed to optimize variable path expansion in queries. When used in combination with QPPs, allReduce() allows for early pruning of paths that do not satisfy a predicate specified on a value accumulated over the path. Previously, only conditions based on values available at the current iteration of QPPs could be early-pruned.
- ALTER DATABASE privileges (including sub-privileges) can now be specified per database and not just at dbms level. e.g.
- Some queries previously unsupported by the NEXT statement are now supported. Queries fragments containing aggregations, updating queries, and DISTINCT used in the context of UNION, after USE, or wrapped in braces, can now follow the NEXT keyword.
Cypher performance improvements
- Improved the performance of queries that use dynamic labels, making them significantly faster. The planner can use the new DynamicLabelNodeLookup to bring the performance of dynamic label lookups close to that of queries with static label (or relationships type) lookups.
CypherShell
- Added an option to disable the command and query history. See documentation.
Fixes
-
Server
- Fixes a bug when performing comparison operations on point and duration types (and array variants of these) when using a range index, where queries in the form `x >= y` did not find any match when `x == y`. This fix ensures that comparison operations for these types now behave the same when using a range index as when not using an index.
-
Cypher
- Fixed a bug that caused large numbers to overflow during arithmetic operations with multiple operands. The system will now correctly detect these overflows at runtime, ensuring reliable calculations.
- Fixed an issue where point.distance() and point.withinBBox() queries could fail to find points that were located just outside a restricted spatial index region, even if they were within the search radius. This ensures that queries against a point index with a region now return consistent and accurate results.
- Fixed a bug that caused an error when creating multiple linked users with a parameterized username. Previously, if you used the same plan to create more than one user, a constraint violation would occur because the unique identifier was being reused. The system now correctly generates a unique identifier for each user, allowing you to create multiple users successfully.
Deprecations
- For all Cypher language changes, deprecations, and compatibility, see
Neo4j Server
- The neo4j-admin backup inspect command’s output now always includes the backup metadata. The –show-metadata flag is no longer required. See Operations Manual -> Inspect the metadata of a backup file for details.
Cypher
- Dynamic labels (for nodes) and dynamic types (for relationships) can now be used in label/type expressions e.g. WHERE n:$($label).
GenAI Plugin
- Updated the vector encoding integrations – genai.vector.encode() and genai.vector.encodeBatch() – to remove restrictions on VertexAI and Bedrock models. The default model used for VertexAI has been retired; therefore, the user must explicitly choose a model in the configuration map. Some of these models have additional optional parameters, which have been accommodated. See https://neo4j.com/docs/cypher-manual/current/genai-integrations/ for details.
Fixes
- Cypher 5 and 25
- Fixes a bug that caused parallel runtime to return incorrect results for queries containing map projections, e.g., MATCH (n) RETURN n {.*} AS map
Deprecations
- For all Cypher language changes, deprecations, and compatibility, see