Fabric on Neo4j Desktop for Windows

Hello,
I wanted to try to use Neo4j 4 with Fabric using Neo4j Desktop on Windows.

I created a Database Item in a Project using the browser, installation using version 4.0.3, then inside this item I created 3 databases using cypher-shell : graph1, graph2 and fabric. The SHOW DATABASES command in system returns the following:

neo4j@system> SHOW DATABASES;
+------------------------------------------------------------------------------------------------+
| name     | address          | role         | requestedStatus | currentStatus | error | default |
+------------------------------------------------------------------------------------------------+
| "fabric" | "localhost:7687" | "standalone" | "online"        | "online"      | ""    | TRUE   |
| "graph1" | "localhost:7687" | "standalone" | "online"        | "online"      | ""    | FALSE    |
| "graph2" | "localhost:7687" | "standalone" | "online"        | "online"      | ""    | FALSE   |
| "neo4j"  | "localhost:7687" | "standalone" | "online"        | "online"      | ""    | FALSE   |
| "system" | "localhost:7687" | "standalone" | "online"        | "online"      | ""    | FALSE   |
+------------------------------------------------------------------------------------------------+

5 rows available after 225 ms, consumed after another 17 ms

In the neo4j.conf configuration of my Data Item I added the following lines:

fabric.database.name=fabric

fabric.graph.0.name=graph1
fabric_graph.0.uri=neo4j://localhost:7687
fabric_graph.0.database=graph1

fabric_graph.1.name=graph2
fabric_graph.1.uri=neo4j://localhost:7687
fabric_graph.1.database=graph2

But I can't launch the Database Item, it does not recognize the fabric settings, I get the following log

2020-04-03 15:11:21.327+0000 INFO  ======== Neo4j 4.0.3 ========
2020-04-03 15:11:21.336+0000 INFO  Starting...
2020-04-03 15:11:27.948+0000 INFO  Sending metrics to CSV file at C:\Users\mcanu\.Neo4jDesktop\neo4jDatabases\database-c0a7e58e-a373-427d-8011-da39867ffc76\installation-4.0.3\metrics
2020-04-03 15:11:27.987+0000 INFO  Bolt enabled on localhost:7687.
2020-04-03 15:11:27.988+0000 INFO  Started.
2020-04-03 15:11:28.427+0000 INFO  Server thread metrics have been registered successfully
2020-04-03 15:11:29.663+0000 INFO  Remote interface available at http://localhost:7474/
2020-04-03 15:11:34.848+0000 WARN  The client is unauthorized due to authentication failure.
2020-04-03 15:13:59.275+0000 WARN  Unrecognized setting. No declared setting with name: fabric_graph.1.name
2020-04-03 15:13:59.280+0000 WARN  Unrecognized setting. No declared setting with name: fabric_graph.0.uri
2020-04-03 15:13:59.280+0000 WARN  Unrecognized setting. No declared setting with name: fabric_graph.1.database
2020-04-03 15:13:59.280+0000 WARN  Unrecognized setting. No declared setting with name: fabric_graph.0.database
2020-04-03 15:13:59.280+0000 WARN  Unrecognized setting. No declared setting with name: fabric_graph.1.uri
2020-04-03 15:13:59.297+0000 INFO  ======== Neo4j 4.0.3 ========
2020-04-03 15:13:59.304+0000 INFO  Starting...
2020-04-03 15:14:01.048+0000 ERROR Failed to start Neo4j: Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabaseService@6175619b' was successfully initialized, but failed to start. Please see the attached cause exception "Remote graph URI must be provided". Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabaseService@6175619b' was successfully initialized, but failed to start. Please see the attached cause exception "Remote graph URI must be provided".
org.neo4j.server.ServerStartupException: Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabaseService@6175619b' was successfully initialized, but failed to start. Please see the attached cause exception "Remote graph URI must be provided".
	at org.neo4j.server.exception.ServerStartupErrors.translateToServerStartupError(ServerStartupErrors.java:45)
	at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:164)
	at org.neo4j.server.ServerBootstrapper.start(ServerBootstrapper.java:114)
	at org.neo4j.server.ServerBootstrapper.start(ServerBootstrapper.java:89)
	at com.neo4j.server.enterprise.EnterpriseEntryPoint.main(EnterpriseEntryPoint.java:25)
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.server.database.LifecycleManagingDatabaseService@6175619b' was successfully initialized, but failed to start. Please see the attached cause exception "Remote graph URI must be provided".
	at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:465)
	at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:111)
	at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:157)
	... 3 more
Caused by: java.lang.IllegalArgumentException: Remote graph URI must be provided
	at com.neo4j.fabric.config.FabricConfig$RemoteUri.<init>(FabricConfig.java:533)
	at com.neo4j.fabric.config.FabricConfig.lambda$parseDatabase$2(FabricConfig.java:199)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1746)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at com.neo4j.fabric.config.FabricConfig.parseDatabase(FabricConfig.java:201)
	at com.neo4j.fabric.config.FabricConfig.from(FabricConfig.java:140)
	at com.neo4j.fabric.bootstrap.FabricServicesBootstrap.<init>(FabricServicesBootstrap.java:54)
	at com.neo4j.enterprise.edition.EnterpriseEditionModule.<init>(EnterpriseEditionModule.java:118)
	at com.neo4j.enterprise.edition.EnterpriseEditionModule.<init>(EnterpriseEditionModule.java:109)
	at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.build(DatabaseManagementServiceFactory.java:118)
	at com.neo4j.server.database.EnterpriseGraphFactory.newDatabaseManagementService(EnterpriseGraphFactory.java:38)
	at org.neo4j.server.database.LifecycleManagingDatabaseService.start(LifecycleManagingDatabaseService.java:88)
	at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:444)
	... 5 more
2020-04-03 15:14:01.050+0000 INFO  Neo4j Server shutdown initiated by request

I tried using bolt://localhost:7687 instead of neo4j://localhost:7687 but it remains the same. It's like my Neo4j does not understand the fabric_graph derivated parameters! Reminder: I use 4.0.3 version.

Can someone tell me what's seem to go wrong on that setup? That would be much appreciated :slight_smile:

https://neo4j.com/docs/operations-manual/4.0/fabric/configuration/

provides an example of the neo4j.conf parameters. whereas you indicates

fabric.database.name=fabric

fabric.graph.0.name=graph1
fabric_graph.0.uri=neo4j://localhost:7687
fabric_graph.0.database=graph1

the doc suggests that the settings are not fabric_graph but rather fabric.graph.

Can you try with neo4j.conf settings of fabric.graph. rather than fabric_graph.

But also are you using fabric_graph since there is doc out on the internet suggesting that the delimeter is _ rather than . ??? If so can you please provide more details

Hi,
Thank you so much for you quick response! Turns out your advices were very helpful.
Indeed, the configuration was a copypaste from https://neo4j.com/developer/multi-tenancy-worked-example/ where it is uncorrectly stated. I noticed the differences between the _ and . and tried some modifications in the Settings tab of the Browser, but apparently they were not saved, I think I forgot to click the Apply button.
Anyway, thank you for your help and have a nice day ! :slight_smile:

thanks for the link to https://neo4j.com/developer/multi-tenancy-worked-example I'll make sure this is updated to include the correct syntax