Article Content


Introduction

Building Workflows in ONE DATA is kind of like programming, sooner or later the day will come, when you run into an error. This can have various reasons, hence it is difficult to provide a general solution for it. Nevertheless, ONE DATA most of the time gives you feedback on what and where things went wrong.

In this article, we will first focus on where ONE DATA provides these error messages. The next section will roughly classify the errors returned from the server. And last but not least will be explained what happens to the Workflow execution if an error occurs.


Note that not everything what goes wrong in a workflow will result in an error message. Non fatal, logical errors that don't interrupt the workflow execution for example. These are most of the time the more tricky ones to fix. Hence, ONE DATA provides the Debug Mode, which you can check out here.


Where to Find Error Messages

If an error is thrown while Workflow execution, ONE DATA will give feedback on the cause of the problem. In this section we will cover where to access the error messages in the UI and what the different symbols in the Workflow Editor mean.

Generally, when the execution fails, you will see a red "X" beside the processor which caused the error.



Now you can either click the "Job Config/State" option in the side bar of the workflow editor or directly open the Processor configuration to view the error message from the ONE DATA server. The next sections will cover each possibility.


Job Config/State Menu

Like mentioned in the section before, the menu can be accessed through the side bar of the Workflow Editor. It shows every error that was raised during the execution.


There are three different categories present in the menu:

  • Current Job Errors: Errors thrown by Processors that made the Workflow fail. Every error, no matter which type it is, will be displayed in there. If we have a configuration error for example, it will be shown in there and the last category, so don't wonder if it is shown twice.
  • Current Job Warning: Warnings that did not not interrupt the Workflow, but could be relevant or cause unwanted behavior.
  • Current Config Errors: Errors in Processor configuration. The Workflow cannot execute if such errors are present.

If errors were raised in a certain category, the icon on the left hand side is colored, and the field can be expanded to view the messages. In this example, there was an error in the Query Processor which made the Workflow fail. When you click on the Processor in the menu, the respective message is shown:


Additionally, there are two buttons on the right hand side:

(1) This will open the Processor configuration menu, which we will cover in the next section.

(2) This option will increase the size of the Processor in the editor. This way its easier to find the affected Processor. Especially when multiple errors were raised or when the Workflow is pretty big.


Processor Configuration Menu

Within the configuration of the Processor, it is equally possible to view error messages under the tab "Errors".


There are two main differences to the "Job/Config State" menu. First of all, the focus of the error message is only on the specific Processor. Also, this menu gives a very detailed error description, including the actual message, the error type and much more technical information.

When expanding the error message, you will see something like the following:

Even though it is very technical, here is an explanation of what most of these fields mean:

  • type: The type of the error. We will focus on these in the next section below.
  • message: The display message of the error, which you also see in the "Job Config/State" menu.
  • cause: The exact cause of the error that made the server interrupt the execution.
    • message: This part includes the message mentioned above plus additional information, which can be very cryptic though.
    • exceptionName: The name of the exception which was thrown on the server. Exception is the programming term for problems that should not appear during execution. More information here.
    • stackAsString: The complete error message thrown on the server. This can get very big, and if you do not have a technical background, it is quite difficult to understand.
  • processorRuntimeId: The id of the processor in runtime.
  • causedByException: Indicates if the error was caused by an exception on the server. If this is true, then it is most likely an execution error. If it is false, then it is most likely a configuration error.


Classification of Errors

This section focuses on the main error types that are returned by the ONE DATA server. You will receive these on every error that occurs within a workflow. It is also possible to obtain more specific ones, but that strongly depends on the individual case, so we will focus only on these two types in this article.


Validation Errors

If such an error is raised, the type "ProcessorValidationErrorDTO" is displayed in the Processor configuration menu.

In general, they occur during validation of a Processor. They can also occur in the beginning of a Processor execution when certain Processor configurations and input data are validated.

So the ONE DATA server makes sure, that for example every Processor has its mandatory input or output ports connected:

Or every mandatory Processor configuration is set:


Configuration errors are also marked with a special symbol in the editor, as you can see above.

So ONE DATA is basically checking that the framework is correctly followed, and if not, hint you what needs to be corrected.

Workflow execution is not possible as long as there are validation errors thrown.


Execution Errors

If such an error is raised, the type "ProcessorExecutionErrorDTO" is displayed in the Processor configuration menu.

As the name of the type already tells us, this type is returned when there is an error during the execution of a Processor, which can have various reasons.

In case of an execution error refer to the returned error message. In many cases, that already gives you a good idea what and where something went wrong in the Workflow. 


What Happens if an Error Occurs

Until now, we looked at how errors are displayed in ONE DATA and what general types of errors there are. The question "What happens to my Workflow if an error occurs?" is not answered. Let's take a closer look at that.

There are three cases that can happen:

  1. The Workflow does not start: This is the case for validation errors. If Processors are not configured, or their input is not satisfied for example, ONE DATA does not start the workflow, because it would result in an execution error later on anyways.
  2. The Workflow is interrupted: This is the case for execution errors. When an error is raised, the Workflow stops at the Processor that caused the problem. That is pretty straight forward, as it is clear that the Processors below would need the input from the Processor which could not produce an output.
  3. The Workflow is partly interrupted: This is the case for execution errors. If the Workflow consists of two parts, that are not connected to each other, ONE DATA interrupts the execution for one part, and continues executing the next, as they are not dependent.