Had two properties but only twitter was constrained in the db. So when an author with the same twitter account but different email submitted it crashed.
2015-02-23T08:41:54.746101+00:00 app[web.1]: http://localhost:45518/api/v0
2015-02-23T08:41:54.932454+00:00 heroku[web.1]: State changed from starting to up
2015-02-23T08:42:08.035639+00:00 app[web.1]: message: 'Node 419485 already exists with label Person and property "twitter"=[NuDataScientist]' }
2015-02-23T08:42:08.036165+00:00 app[web.1]:
2015-02-23T08:42:08.035939+00:00 app[web.1]: message: 'Node 419485 already exists with label Person and property "twitter"=[NuDataScientist]' }
2015-02-23T08:42:08.035936+00:00 app[web.1]: { [Error: Node 419485 already exists with label Person and property "twitter"=[NuDataScientist]]
2015-02-23T08:42:08.035632+00:00 app[web.1]: { [Error: Node 419485 already exists with label Person and property "twitter"=[NuDataScientist]]
2015-02-23T08:42:08.038218+00:00 app[web.1]: at Request.<anonymous> (/app/node_modules/request/request.js:1318:14)
2015-02-23T08:42:08.038210+00:00 app[web.1]: at __$GraphDatabase_prototype_query__20 (/app/node_modules/neo4j/lib/GraphDatabase.js:942:26)
2015-02-23T08:42:08.038213+00:00 app[web.1]: at Object.__g.trampoline.flush (/app/node_modules/neo4j/lib/Node.js:2:3552)
2015-02-23T08:42:08.038215+00:00 app[web.1]: at Request.self.callback (/app/node_modules/request/request.js:373:22)
2015-02-23T08:42:08.038217+00:00 app[web.1]: at Request.emit (events.js:98:17)
2015-02-23T08:42:08.038202+00:00 app[web.1]: Error: Node 419485 already exists with label Person and property "twitter"=[NuDataScientist]
2015-02-23T08:42:08.038208+00:00 app[web.1]: at exports.adjustError (/app/node_modules/neo4j/lib/util.js:71:15)
2015-02-23T08:42:08.038211+00:00 app[web.1]: at /app/node_modules/neo4j/lib/GraphDatabase.js:2:6247
2015-02-23T08:42:08.038214+00:00 app[web.1]: at Request.___ [as _callback] (/app/node_modules/neo4j/lib/GraphDatabase.js:2:5602)
2015-02-23T08:42:08.038221+00:00 app[web.1]: at IncomingMessage.<anonymous> (/app/node_modules/request/request.js:1266:12)
2015-02-23T08:42:08.038220+00:00 app[web.1]: at Request.emit (events.js:117:20)
2015-02-23T08:42:08.058550+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=POST path="/api/v0/gists?api_key=special-key&neo4j=true" host=graphgist.neo4j.com request_id=e52522b9-70ea-4f1f-9070-db9238b23482 fwd="86.28.203.100" dyno=web.1 connect=1ms service=168ms status=503 bytes=0
2015-02-23T08:42:08.807315+00:00 heroku[web.1]: Process exited with status 8
2015-02-23T08:42:08.820833+00:00 heroku[web.1]: State changed from up to crashed
2015-02-23T08:42:18.620812+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=POST path="/api/v0/gists?api_key=special-key&neo4j=true" host=graphgist.neo4j.com request_id=16a30479-9ebe-482a-9d94-db8c775dcb59 fwd="86.28.203.100" dyno= connect= service= status=503 bytes=
The MERGE statement in https://github.com/neo4j-contrib/graphgist-cms/blob/master/api/models/gists.js#L353
Had two properties but only twitter was constrained in the db. So when an author with the same twitter account but different email submitted it crashed.
Tried to fix it in: https://github.com/neo4j-contrib/graphgist-cms/commit/ab3aad10a4af8deaa378cbd9ab505eaef78b92aa
But it didn't work.
Btw. such errors shouldn't result in crashes, see https://github.com/neo4j-contrib/graphgist-cms/issues/66