Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-14357

Add structured information on exceptions in the External Task Client

XMLWordPrintable

      User Story (Required on creation):

      Using the Java External Task Client, I want to have access to potential process engine-related exceptions in a structured way when interacting with the process instance via API methods like ExternalTaskService::complete.

      Functional Requirements (Required before implementation): 

      The client's API method calls return structured exception data, e.g. JSON containing the exception type and message

      Technical Requirements (Required before implementation):

      • Extract the type and message from the original exception, where possible
      • Add this information to the NotResumedException as an attribute
      • The data can be provided as a raw JSON String or a JSON Object, depending on current out-of-the-box support of JSON handling in the client

      Limitations of Scope (Optional):

      • The original exceptions are not rethrown since we might not have their code in the client, we can only convey their content in a uniform way

      Hints (optional):

      Currently, the original exception's message is returned so users have to parse this unstructured information in order to identify what happened in the process engine.

      TASK/CLIENT-01009 Exception while completing the external task: The corresponding process instance could not be resumed. Reason: status code: 500, reason phrase: {"type":"OptimisticLockingException","message":"ENGINE-03005 Execution of 'DELETE ExternalTaskEntity[667ea01f-6974-11ec-a6aa-0242b23e4a4c]' failed. Entity was updated by another transaction concurrently."}

        This is the controller panel for Smart Panels app

              Unassigned Unassigned
              radist Andrey Marinchuk
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: