@camunda8/sdk 8.6.19 → 8.6.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [8.6.20](https://github.com/camunda/camunda-8-js-sdk/compare/v8.6.19...v8.6.20) (2025-01-23)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **zeebe:** catch exception in fail job on unhandled exception in job handler. fixes [#351](https://github.com/camunda/camunda-8-js-sdk/issues/351) ([91e7213](https://github.com/camunda/camunda-8-js-sdk/commit/91e7213a8530ff8d8a46e2f71186e929b9154bc7))
7
+ * **zeebe:** do not fail jobs that are already not found ([448575c](https://github.com/camunda/camunda-8-js-sdk/commit/448575c6489811869cc88f7e6db7b0e9a7e201ec))
8
+
1
9
  ## [8.6.19](https://github.com/camunda/camunda-8-js-sdk/compare/v8.6.18...v8.6.19) (2025-01-23)
2
10
 
3
11
 
@@ -31,7 +31,15 @@ class ZBWorker extends ZBWorkerBase_1.ZBWorkerBase {
31
31
  catch (e) {
32
32
  this.logger.logError(`Caught an unhandled exception in a task handler for process instance ${job.processInstanceKey}:`);
33
33
  this.logger.logDebug(job);
34
- this.logger.logError(e.message);
34
+ // If the exception has a details field, log it
35
+ // This is the case for exceptions thrown when the job is not found. The details field contains an explanation.
36
+ const hasDetails = (e) => !!e.details;
37
+ if (hasDetails(e)) {
38
+ this.logger.logError(e.details);
39
+ }
40
+ else {
41
+ this.logger.logError(e.message);
42
+ }
35
43
  if (this.cancelWorkflowOnException) {
36
44
  const { processInstanceKey } = job;
37
45
  this.logger.logDebug(`Cancelling process instance ${processInstanceKey}`);
@@ -43,14 +51,29 @@ class ZBWorker extends ZBWorkerBase_1.ZBWorkerBase {
43
51
  }
44
52
  }
45
53
  else {
46
- this.logger.logInfo(`Failing job ${job.key}`);
54
+ const message = e.message;
55
+ // This is *most probably* an error thrown because the job was not found when job.complete() or job.fail() was called.
56
+ // It could also happen in some cases where the handler does another operation that returns an error with the same code.
57
+ if (message.includes('5 NOT_FOUND') &&
58
+ message.includes(job.key) &&
59
+ (message.includes('COMPLETE') || message.includes('FAIL'))) {
60
+ this.logger.logDebug(`Job ${job.key} was already completed or failed, or the process instance was cancelled. Ignoring.`);
61
+ this.drainOne();
62
+ return;
63
+ }
64
+ this.logger.logInfo(`Failing job ${job.key} due to unhandled exception`);
47
65
  const retries = job.retries - 1;
48
66
  try {
49
- this.zbClient.failJob({
67
+ this.zbClient
68
+ .failJob({
50
69
  errorMessage: `Unhandled exception in task handler ${e}`,
51
70
  jobKey: job.key,
52
71
  retries,
53
72
  retryBackOff: 0,
73
+ })
74
+ .catch((e) => {
75
+ console.error('Any error was thrown while failing the job after an unhandled exception in the task handler');
76
+ console.error(e.message);
54
77
  });
55
78
  }
56
79
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"ZBWorker.js","sourceRoot":"","sources":["../../../src/zeebe/zb/ZBWorker.ts"],"names":[],"mappings":";;;AACA,sDAA6E;AAE7E,MAAa,QAIX,SAAQ,2BAIT;IACA,YACC,MAIC;QAED,KAAK,CAAC,MAAM,CAAC,CAAA;IACd,CAAC;IAES,UAAU,CACnB,IAAuD;QAEvD,qCAAqC;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IACjD,CAAC;IAES,KAAK,CAAC,SAAS,CACxB,GAAoD;QAEpD,IAAI,CAAC;YACJ;;;;;eAKG;YAEH,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;YAErD,MACC,IAAI,CAAC,WAKL,CACA;gBACC,GAAG,GAAG;gBACN,cAAc,EAAE,cAAc,CAAC,cAAc;gBAC7C,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;aAC/B,EACD,IAAI,CACJ,CAAA;QACF,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CACnB,wEAAwE,GAAG,CAAC,kBAAkB,GAAG,CACjG,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAW,CAAC,OAAO,CAAC,CAAA;YAC1C,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACpC,MAAM,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAA;gBAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CACnB,+BAA+B,kBAAkB,EAAE,CACnD,CAAA;gBACD,IAAI,CAAC;oBACJ,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAA;gBAC9D,CAAC;wBAAS,CAAC;oBACV,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChB,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;gBAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC/B,IAAI,CAAC;oBACJ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;wBACrB,YAAY,EAAE,uCAAuC,CAAC,EAAE;wBACxD,MAAM,EAAE,GAAG,CAAC,GAAG;wBACf,OAAO;wBACP,YAAY,EAAE,CAAC;qBACf,CAAC,CAAA;gBACH,CAAC;gBAAC,OAAO,CAAU,EAAE,CAAC;oBACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACxB,CAAC;wBAAS,CAAC;oBACV,IAAI,CAAC,QAAQ,EAAE,CAAA;oBACf,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;wBACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,CACnB,yDAAyD,OAAO,EAAE,CAClE,CAAA;oBACF,CAAC;yBAAM,CAAC;wBACP,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAA;oBACtD,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;CACD;AAjGD,4BAiGC"}
1
+ {"version":3,"file":"ZBWorker.js","sourceRoot":"","sources":["../../../src/zeebe/zb/ZBWorker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda8/sdk",
3
- "version": "8.6.19",
3
+ "version": "8.6.20",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {