Changelog

This page mirrors the GitHub releases of the Neo4j Connector for Apache Spark, listing headline features, fixes, and breaking changes for every minor and patch release of the 6.x line.

Version 6.1.0 (2 October 2026)

Feature Details

Breaking

Fail-early when using "ErrorIfExists"

This mode was never fully supported in. Either it failed or was silently equivalent to "Append", depending on the situation. Update your "ErrorIfExists" fields to "Append".

Breaking

Script is now read-only during read operations

You can no longer pass write-queries via the script option when Spark is in read mode. This creates consistency across the board. For write operations, you can still use script as before.

Fixed Breaking

Fixed dot-separated property parsing

The parser for property names is updated to distinguish between previous ambiguity. Property names containing dots are no longer ambiguous with alias separators. A backtick-quoted property path such as `my.property` is no longer split on its dots. This makes it possible to consistently read/write maps between the connector and Neo4j.

New Feature

Control what happens when a commit outcome is unknown

When the connection drops while a commit is in flight, the server may or may not have applied the transaction, and earlier versions always replayed the batch, silently duplicating it for non-idempotent writes. The new transaction.commit.unknown.outcome option makes that a choice between RETRY (the previous behavior, now also logging a warning) and FAIL. See Transactions, retries, and partial failures.

New Feature

New OIDC authentication (generic)

A generic OIDC token provider prefixed oidc added among available authentication options. You can freely pass OIDC configuration parameters with dot notation. Example: .option("authentication.oidc.clientSecret", "secret")

Updated

Schema names are sanitized with the Cypher DSL

Replaces the connector’s own quoting function, fixing labels and property names that need escaping.

Bug Fixed

Custom authentication providers

Previous version accidentally broke Custom authentication supplier. This is now fixed and functionality restored.

Bug Fixed

Stream reader no longer applies create optimizations

Schema optimizations meant for writes are no longer applied by the streaming reader.

Bug Fixed

Labels containing spaces no longer cause a slowdown

There was a bug with labels containing spaces, causing them to degenerate into full graph scans when used in partitions. Such labels are now quoted correctly, and they no longer degenerate into full scans.

Bug Fixed

Property names containing dots are no longer ambiguous with alias separators

A backtick-quoted property path such as my.property is no longer split on its dots.

Bug Fixed

NullPointerException in streaming reads

Fixed an identified NullPointerException when computing the latest offset for streaming reads.

Bug Fixed

Fix: alwaysTrue and alwaysFalse predicates are handled

These are now pushed down correctly instead of raising an error.

Bug Fixed

Removed the skip/limit validation

Improvements made to query options made the validation redundant. Remove the validation since it could reject valid partitioned reads.

Version 6.0.0 (24 July 2026)

Feature Details

Breaking

Removed deprecated 5.x features.

Such as option schema.optimization.type, usage of $stream.offset in partitioned reads etc. Despite deprecation, setting data.conversion to legacy is still supported for now.

Breaking

Introducing support for Spark 4.0 and 4.1.

With Scala version 2.13, minimum Java 17 and targets Neo4j 5.0, 2025 and/or 2026. Dropped support for Scala 2.12, older versions of Java or Neo4j.

New Feature

Introducing support for CYPHER 25

Set Cypher version to 25 with .option("cypher.version", "25")

New Feature

Granular support of Cypher runtime

Using the new options-prefix cypher.tuning you can apply CYPHER preambles for any generated query from the connector. See cypher tuning and cypher runtime.

Enhanced query option

Custom queries passed with the query option is re-written. Custom queries are now supported by Data Source V2’s predicate push-down optimizations.

Remove ;-separated script options

It is no longer possible to run multiple queries by separating them with a semicolon inside a single script option.

New

Add indexed script.N options

Use the new script.1, script.2, …​, script.N options to run multiple scripts. They are executed in numbered order.

Default relationship.save.strategy is now KEYS

Changed relationship.save.strategy default value from NATIVE to KEYS.

New Feature

Add custom transaction metadata

It is now possible for spark clients to set custom Neo4j Driver transaction metadata using option db.transaction.metadata.

If you run Spark 3, keep using version 5.5 of the connector.