Changes, deprecations, and removals in Neo4j 2025.x

Breaking changes in Neo4j 2025.01

The section covers breaking changes since the Neo4j 5.26 LTS release. For guidelines on how to migrate from previous Neo4j versions to 2025.01, see the Upgrade and Migration Guide.

Clustering

Discovery service

In 2025.01, discovery service v1 is removed. Therefore, transitioning from v1 to v2 must be completed before upgrading to Neo4j 2025.01.

Configuration settings
  • In 2025.01, the settings server.discovery.advertised_address and server.discovery.listen_address are removed.

    To list the discovery endpoints (e.g., for providing them to the discovery resolver), use the value from the server.cluster.advertised_address setting.

  • Two configuration settings related to the discovery service v2 are renamed. You can still use them when migrating from Neo4j 5.26 to the 2025.01 version. However, it is recommended to update your neo4j.conf file to use the new settings.

    Table 1. Renamed configuration settings
    Old name New name

    dbms.cluster.discovery.v2.endpoints

    dbms.cluster.endpoints

    dbms.kubernetes.discovery.v2.service_port_name

    dbms.kubernetes.discovery.service_port_name

Ports

Port 5000 is no longer used from 2025.01 onwards. Use port 6000 for the internal traffic.

For more details, refer to the Configuration → Ports.

Logging

Starting from Neo4j 2025.01, the default debug.log format has been changed from Text to JSON. It is highly recommended to keep it enabled and not to alter it.
If you require the debug.log messages in a different format, create an additional Appender since the Neo4j Support team uses the default one. For more information, see Default logging configuration.

Built-in procedures

See procedures removed in Neo4j 2025.01 without replacement.

Neo4j configuration settings

Removed configuration settings

See removed configuration settings in Neo4j 2025.01.
Name Comments

db.cluster.raft.leader_transfer.priority_group Enterprise Edition

Removed without replacement. Instead use db.cluster.raft.leader_transfer.priority_tag.

db.logs.query.annotation_data_as_json_enabled Dynamic

Replaced by db.logs.query.annotation_data_format.

db.tx_state.memory_allocation

Removed without replacement.

dbms.cluster.catchup.client_inactivity_timeout Enterprise Edition

Use dbms.cluster.network.client_inactivity_timeout.

dbms.cluster.discovery.log_level Enterprise Edition

Removed without replacement.

dbms.cluster.discovery.type Enterprise Edition

Removed without replacement.

dbms.cluster.discovery.endpoints Enterprise Edition

Removed without replacement.

dbms.cluster.discovery.version Enterprise Edition

Removed without replacement.

dbms.kubernetes.service_port_name Enterprise Edition

Removed without replacement.

initial.dbms.database_allocator Enterprise Edition

Removed without replacement.

server.cluster.catchup.connect_randomly_to_server_group Enterprise Edition Dynamic

Removed without replacement.
Instead use server.cluster.catchup.connect_randomly_to_server_tags

server.discovery.advertised_address Enterprise Edition

Removed without replacement.
Instead use the value of server.cluster.advertised_address.

server.discovery.listen_address Enterprise Edition

Removed without replacement.
Instead use the value of server.cluster.listen_address.

server.groups Enterprise Edition

Replaced by initial.server.tags.

server.memory.off_heap.block_cache_size

Removed without replacement.

server.memory.off_heap.max_cacheable_block_size

Removed without replacement.

server.memory.off_heap.transaction_max_size

Removed without replacement.

Changes to default values of configuration settings

These changes affect only new installations or upgrades that involve replacing existing configuration files.

See changes to default values in Neo4j 2025.01.
Name Old default value New default value

db.logs.query.annotation_data_format Dynamic

CYPHER

JSON

dbms.databases.seed_from_uri_providers Enterprise Edition

S3SeedProvider,CloudSeedProvider

CloudSeedProvider

server.metrics.csv.rotation.compression Enterprise Edition

NONE

ZIP

server.panic.shutdown_on_panic Enterprise Edition

false

true

server.logs.config

conf/server-logs.xml

server-logs.xml

server.logs.user.config

conf/user-logs.xml

user-logs.xml

Changes to valid values of configuration settings

The server.logs.config and the server.logs.user.config are changed to depend on the provided path for the conf directory instead of having the conf directory encoded in the default values.

Table 2. Updated configuration settings
Name Old valid value New valid value

server.logs.config

A path. If relative, it is resolved from server.directories.neo4j_home.

A path. If relative, it is resolved from server.directories.configuration.

server.logs.user.config

A path. If relative, it is resolved from server.directories.neo4j_home.

A path. If relative, it is resolved from server.directories.configuration.

Neo4j metrics

Removed metrics

See removed metrics in Neo4j 2025.01.
Metrics class Metrics name

Raft core metrics - replaced accordingly by the Raft metrics

<prefix>.causal_clustering.core.append_index
<prefix>.causal_clustering.core.commit_index
<prefix>.causal_clustering.core.applied_index
<prefix>.causal_clustering.core.term
<prefix>.causal_clustering.core.tx_retries
<prefix>.causal_clustering.core.is_leader
<prefix>.causal_clustering.core.in_flight_cache.total_bytes
<prefix>.causal_clustering.core.in_flight_cache.max_bytes
<prefix>.causal_clustering.core.in_flight_cache.element_count
<prefix>.causal_clustering.core.in_flight_cache.max_elements
<prefix>.causal_clustering.core.in_flight_cache.hits
<prefix>.causal_clustering.core.in_flight_cache.misses
<prefix>.causal_clustering.core.raft_log_entry_prefetch_buffer.lag
<prefix>.causal_clustering.core.raft_log_entry_prefetch_buffer.bytes
<prefix>.causal_clustering.core.raft_log_entry_prefetch_buffer.size
<prefix>.causal_clustering.core.raft_log_entry_prefetch_buffer.async_put
<prefix>.causal_clustering.core.raft_log_entry_prefetch_buffer.sync_put
<prefix>.causal_clustering.core.message_processing_delay
<prefix>.causal_clustering.core.message_processing_timer
<prefix>.causal_clustering.core.replication_new
<prefix>.causal_clustering.core.replication_attempt
<prefix>.causal_clustering.core.replication_fail
<prefix>.causal_clustering.core.replication_maybe
<prefix>.causal_clustering.core.replication_success
<prefix>.causal_clustering.core.last_leader_message

Read Replica metrics - replaced accordingly by the Store copy metrics

<prefix>.causal_clustering.read_replica.pull_updates
<prefix>.causal_clustering.read_replica.pull_update_highest_tx_id_requested
<prefix>.causal_clustering.read_replica.pull_update_highest_tx_id_received

Discovery metrics v1 - removed without replacement. See Discovery metrics

<prefix>.cluster.discovery.replicated_data
<prefix>.cluster.discovery.cluster.members
<prefix>.cluster.discovery.cluster.unreachable
<prefix>.cluster.discovery.cluster.converged
<prefix>.cluster.discovery.restart.success_count
<prefix>.cluster.discovery.restart.failed_count

Renamed metrics

In Neo4j 2025.01, the <prefix>.store.size.total is renamed to <prefix>.store.size.full to be in line with the Prometheus naming requirements.

See the table Database store size metrics for more details.

SSL framework

The CBC-based ciphers that are no longer supported from Neo4j 2025.01
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256

  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256

    For more details, refer to the page on SSL framework under the Security section.

SSL-related configuration setting

Starting from 2025.01, the default value of dbms.ssl.policy.*.verify_hostname is changed from false to true. See the table on the page SSL framework for more details.

Changes to Java API

See the removed public API
  • com.neo4j.configuration.EnterpriseEditionSettings.initial_database_allocator

  • com.neo4j.configuration.EnterpriseEditionSettings.server_groups

  • com.neo4j.configuration.EnterpriseEditionSettings.server_max_number_of_databases

  • com.neo4j.dbms.procedures.wait.WaitResponseState

  • com.neo4j.configuration.ClusterSettings.DEFAULT_CLUSTER_STATE_DIRECTORY_NAME

  • com.neo4j.configuration.ClusterSettings.DEFAULT_DISCOVERY_PORT

  • com.neo4j.configuration.ClusterSettings.DEFAULT_RAFT_PORT

  • com.neo4j.configuration.ClusterSettings.DEFAULT_TRANSACTION_PORT

  • com.neo4j.configuration.ClusterSettings.catchup_connect_randomly_to_server_group

  • com.neo4j.configuration.ClusterSettings.raft_leader_transfer_priority_group

  • com.neo4j.configuration.ClusterBaseSettings.DEFAULT_DISCOVERY_PORT

  • com.neo4j.configuration.ClusterNetworkSettings.catchup_client_inactivity_timeout

  • com.neo4j.causalclustering.discovery.parallel.ParallelDiscoveryMode

  • com.neo4j.causalclustering.discovery.resolve.RemotesResolver.Type

  • com.neo4j.causalclustering.discovery.resolve.RemotesResolver.init(com.neo4j.causalclustering.discovery.resolve.RemotesResolver.Type, org.neo4j.graphdb.config.Configuration, org.neo4j.logging.LogProvider)

  • com.neo4j.configuration.ClusterAddressSettings.discovery_advertised_address

  • com.neo4j.configuration.DiscoverySettings.discovery_endpoints

  • com.neo4j.configuration.DiscoverySettings.discovery_listen_address

  • com.neo4j.configuration.DiscoverySettings.discovery_log_level

  • com.neo4j.configuration.DiscoverySettings.discovery_type

  • com.neo4j.configuration.DiscoverySettings.discovery_version

  • com.neo4j.configuration.KubernetesSettings.kubernetes_service_port_name

  • com.neo4j.configuration.RaftSettings.DEFAULT_CLUSTER_STATE_DIRECTORY_NAME

  • com.neo4j.configuration.RaftSettings.DEFAULT_RAFT_PORT

  • com.neo4j.dbms.seeding.SeedDownloadStreamWrapper

  • com.neo4j.dbms.seeding.SeedProvider

  • com.neo4j.dbms.seeding.SeedProviderDependencies

  • org.neo4j.configuration.GraphDatabaseSettings.TransactionStateMemoryAllocation

  • org.neo4j.configuration.GraphDatabaseSettings.log_queries_annotation_data_as_json

  • org.neo4j.configuration.GraphDatabaseSettings.tx_state_max_off_heap_memory

  • org.neo4j.configuration.GraphDatabaseSettings.tx_state_memory_allocation

  • org.neo4j.configuration.GraphDatabaseSettings.tx_state_off_heap_block_cache_size

  • org.neo4j.configuration.GraphDatabaseSettings.tx_state_off_heap_max_cacheable_block_size

The SeedProvider is removed and replaced by the DatabaseSeedProvider. For details, refer to the Java Reference → Extending Neo4j → Setting up a plugin project.

Deprecations in Neo4j 2025.x

This section lists all the Neo4j Server features deprecated in the 2025 series, including replacements where applicable.

For deprecations in Cypher language, see Cypher manual → Deprecations, additions, and compatibility.

Procedures

See all deprecated procedures
Name Community Edition Enterprise Edition Comment

dbms.quarantineDatabase() Admin Only

Deprecated in 2025.01
Replaced by dbms.unquarantineDatabase()

dbms.cluster.uncordonServer()

Deprecated in 5.23.
Before Neo4j 5.23, the procedure can be run only with an admin privilege.
Replaced by ENABLE SERVER.

dbms.cluster.routing.getRoutingTable()

Deprecated in 5.21.
Replaced by: dbms.routing.getRoutingTable().

cdc.current() Beta

Deprecated in 5.17
Replaced by: db.cdc.current()

cdc.earliest() Beta

Deprecated in 5.17
Replaced by: db.cdc.earliest()

cdc.query() Beta Admin Only

Deprecated in 5.17
Replaced by: db.cdc.query()

db.create.setVectorProperty() Beta

Deprecated in 5.13
Replaced by: db.create.setNodeVectorProperty()

dbms.upgrade() Admin Only

Deprecated in 5.9

dbms.upgradeStatus() Admin Only

Deprecated in 5.9

dbms.cluster.readReplicaToggle() Admin Only

Deprecated in 5.6
Replaced by: dbms.cluster.secondaryReplicationDisable().

Configuration settings

See all deprecated configuration settings
Name Community Edition Enterprise Edition Comment

server.db.query_cache_size

Deprecated in 5.7

dbms.security.oidc.<provider>.auth_params

Dynamic Deprecated

dbms.security.oidc.<provider>.client_id

Dynamic Deprecated

Metrics

See all deprecated metrics
Name Comment

Database data metrics Deprecated in 5.15

<prefix>.ids_in_use.relationship_type

<prefix>.ids_in_use.property

<prefix>.ids_in_use.relationship

If you want to have a rough metric of how big your graph is, use <prefix>.neo4j.count.relationship instead.

<prefix>.ids_in_use.node

If you want to have a rough metric of how big your graph is, use <prefix>.neo4j.count.node instead.

Neo4j-admin tool

See all deprecated commands
Name Community Edition Enterprise Edition Comment

neo4-admin database aggregate-backup

Deprecated in 2025.01
Replaced by neo4j-admin backup aggregate

Seed providers

S3SeedProvider is deprecated since Neo4j 5.26 and replaced by the CloudSeedProvider.

For more information, see Seed from URI.