zeebe-client-node-js
zeebe-client-node-js copied to clipboard
Uncaught exception causes process exit
Client applications can blow up completely with Camunda Cloud due to uncaught exception:
02:10:18.262 | zeebe | [give-maintainer-permissions] ERROR: Grpc Stream Error: 14 UNAVAILABLE: GOAWAY received - e3795d24-6ba3-4da5-82f1-719c5720bae4.zeebe.camunda.io:443
09:28:02.257 | zeebe | [add-labels] ERROR: Grpc Stream Error: 14 UNAVAILABLE: GOAWAY received - e3795d24-6ba3-4da5-82f1-719c5720bae4.zeebe.camunda.io:443
ERROR (server):
type: "error"
INFO (server): Connected
11:11:12.708 | zeebe | [add-topic] ERROR: Grpc Stream Error: 14 UNAVAILABLE: TCP Read failed - e3795d24-6ba3-4da5-82f1-719c5720bae4.zeebe.camunda.io:443
events.js:292
throw er; // Unhandled 'error' event
^
Error: connect ETIMEDOUT 188.40.122.95:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
Emitted 'error' event on ClientRequest instance at:
at TLSSocket.socketErrorListener (_http_client.js:469:9)
at TLSSocket.emit (events.js:315:20)
at TLSSocket.EventEmitter.emit (domain.js:467:12)
at emitErrorNT (internal/streams/destroy.js:106:8)
at emitErrorCloseNT (internal/streams/destroy.js:74:3)
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
errno: -110,
code: 'ETIMEDOUT',
syscall: 'connect',
address: '188.40.122.95',
port: 443
}
At the moment, adding a process.on('uncaughtException') handler in the application itself is the way to deal with this.
To mitigate this - because an end-user putting a catch-all on uncaught process exceptions is not ideal - finding out how to attach an onError handler to that TLSSocket is one thing to look at.
No-one has reported this or commented on here - so maybe this has gone away with updated gRPC libs?
I'm going to close this for now.