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.

Invalid attempt to spread non-iterable instance

I have a Cypher query that runs perfectly in Neo4j Desktop but when I run the same query as a search in Bloom I get this error dialog:

My Cypher query is:

MATCH (p:Person {nickname:$person})-[r:RESPONSIBLE_FOR]-(n)
CALL apoc.path.subgraphAll(n,{ relationshipFilter:'CONTAINS>',maxLevel:1})
YIELD nodes, relationships
RETURN p,r,nodes,relationships

6 REPLIES 6

Hi @martin.halliday1,
Can you put a screenshot of the graph output from Neo4j Desktop?

When using a search phrase, you have to unwind nodes and relationship arrays. Bloom is expecting records of nodes, relationships or paths in the result set.

I must be missing something here. I can run "MATCH (p:Person) RETURN p" and I do not have to "unwind" the list of people.
What is the subtle distinction that I am missing here?

Hey @martin.halliday1,
MATCH (p:Person) is simply matching all the person nodes in the database.
In your query, apoc.subgraphAll is going to yield an array of nodes and relationships when you do a YIELD nodes, relationships.
After that, you will have to do
UNWIND relationships as r
UNWIND nodes as n
And then RETURN statement

As a user of Neo4j these both look exactly the same to me. In both cases I have a collection of nodes and relationships. I guess there is some subtle internal implementation detail that makes them different for Bloom even though they are treated identically by the Browser.
Your workaround does work, but I think the Bloom team should add this to their list of things to fix.