cancel
Showing results for 
Search instead for 
Did you mean: 

Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.

Fabric error - "Dynamic graph lookup not allowed here. This feature is only available in a Fabric database"

Using this tutorial as inspiration I have the following fabric config (real db names & IPs changed):

- NEO4J_fabric_database_name=fabric
# db1 (local)
- NEO4J_fabric_graph_0_uri=neo4j://localhost:7687
- NEO4J_fabric_graph_0_name=db1
- NEO4J_fabric_graph_0_database=domain1
# db2 (local)
- NEO4J_fabric_graph_1_uri=neo4j://localhost:7687
- NEO4J_fabric_graph_1_name=db2
- NEO4J_fabric_graph_1_database=domain2
# db3 (remote)
- NEO4J_fabric_graph_2_uri=neo4j://123.456.789:7687
- NEO4J_fabric_graph_2_name=db3
- NEO4J_fabric_graph_2_database=domain3

When the server has started, I'm able to confirm 3 dbs in the fabric catalog:

RETURN fabric.graphIds()
---
[1,0,2]

And any of the three dbs can be individually accessed, e.g:

USE fabric.db1
MATCH (p:Post)
RETURN count(p)
---
2520

But if I try and cycle through all dbs in the catalog in a single query, as shown in the tutorial, this error is generated:

UNWIND fabric.graphIds() as graphId
CALL {
    USE fabric.graph(graphId)
    MATCH (p:Post)
    RETURN count(p) as postCount
}
RETURN postCount
---
Dynamic graph lookup not allowed here. This feature is only available in a Fabric database
Attempted to access graph fabric.graph(graphId)
"USE fabric.graph(graphId)"

Running Neo4j Enterprise 4.1.

2 REPLIES 2

clem
Graph Steward

My guess (as an Intermediate-level neo4j user) is you're misusing the USE statement.

graphId is actually a list of IDs (created by UNWIND), which I don't think USE will be happy with.

I think you need to use the FOREACH to loop on each GraphId so that the USE will get just one at a time,

But that's my guess.... I could be wrong... I hope that helps.

Hi @terryfranklin82 and anyone else who experiences the same issue,

I had the same problem when running similar queries from my Jupyter notebook against a docker hosted Neo4j instance hosting my virtual fabric database. The issue was, when I connected to Neo4j, the default database is set to 'neo4j' and not the virtual fabric database. What I did to resolve the issue was adding NEO4J_dbms_default__database: <fabric-name> to the environment variable of the fabric container. Restarted all my containers and dynamic graph lookup was finally allowed!

Kind regards,
Dion

Nodes 2022
Nodes
NODES 2022, Neo4j Online Education Summit

All the sessions of the conference are now available online