Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.3.8
-
None
Description
In our currently application(React, node.js, Express), we are creating an edge between two existing nodes.
async function somethingThatQueriesGremlin() { try { const result = await theActualQuery(); // ... } catch (error) { console.log(error); // I expect error to be useful and not a stringified instance of Error wrapped in an Error. } }
If the edge already exists, the error that is logged on the server is
Error: Server error: {"requestId":"e44b2c9a-9542-461b-9d1b-bc3db3f869f4","code":"ConstraintViolationException","detailedMessage":"Edge with id already exists: TEST|77886.105.1:NO_SIZE:0->WVN"} (499) at Connection._handleMessage (.../node_modules/gremlin/lib/driver/connection.js:265:9) at WebSocket._ws.on (.../node_modules/gremlin/lib/driver/connection.js:128:43) at emitOne (events.js:116:13) at WebSocket.emit (events.js:211:7) at Receiver._receiver.onmessage (.../node_modules/ws/lib/WebSocket.js:141:47) at Receiver.dataMessage (.../node_modules/ws/lib/Receiver.js:380:14) at Receiver.getData (.../node_modules/ws/lib/Receiver.js:330:12) at Receiver.startLoop (.../node_modules/ws/lib/Receiver.js:165:16) at Receiver.add (.../node_modules/ws/lib/Receiver.js:139:10) at TLSSocket._ultron.on (.../node_modules/ws/lib/WebSocket.js:138:22) at emitOne (events.js:116:13) at TLSSocket.emit (events.js:211:7) at addChunk (_stream_readable.js:263:12) at readableAddChunk (_stream_readable.js:250:11) at TLSSocket.Readable.push (_stream_readable.js:208:10) at TLSWrap.onread (net.js:607:20) object
The problem is that the actual error object with reachable keys is a string within another error object. The stringified object is reachable via err.message.
The error comes from the driver in connection.js line 265
newError(util.format('Server error: %s (%d)',response.status.message,response.status.code)));
Attachments
Issue Links
- links to