Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-2285

Error object is unreachable

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.3.8
    • 3.3.9, 3.4.4, 3.5.0
    • javascript
    • 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

          Activity

            People

              spmallette Stephen Mallette
              tzarag Teonna Zaragoza
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: