Table of Contents

DataHub Error Log

Overview

The DataHub Error Log is the place in 3PL Dynamics where errors from your DataHub integrations are collected, classified, and followed up. When an integration flow fails, the error is brought into Business Central and shown on the DataHub Error List.

From that list you can see what failed, how serious it is, and who should be told. Error Rules classify each error. A condition on a rule can also send an email to the people who need to act on that case, so you do not have to watch the list for every failure.

From a single overview you can:

  • Monitor integration errors across your flows
  • Track the status and severity of each error
  • Open the Flow Run where the error occurred
  • Read the error message and stack trace
  • Classify errors automatically with Error Rules
  • Send an email to the right recipients when a rule matches
  • See the number of new errors on the role center

How It Works

Azure Cloud (DataHub)
        │
        │  Error occurs in a Flow Run
        │
        ▼
Azure Error Queue
        │
        │  Pulled on Refresh (or scheduled)
        │
        ▼
DataHub Error Log (Business Central)
        │
        ├─ Error Rule Evaluator runs automatically
        │       ├─ Assigns Severity based on configured rules
        │       └─ Sends an email when a matching rule has Send Email on
        │
        └─ Error List page shows grouped tree view

When you choose Refresh on the Error List, Business Central fetches pending error messages and stores them in the Error Log. The same import runs on a schedule when the job queue entry from Create Job Queue on DataHub 2 Setup is active. After importing, the rules run automatically. They set the severity, and they send an email for each matching condition that has Send Email turned on.


The Error List

Navigate to the Error List via: Alt+Q → DataHub Error List

The list shows errors as a tree. The first occurrence is the parent and is shown in bold. Later occurrences of that same error are grouped underneath it. The tree starts collapsed. Expand a parent row to see them.

Columns

Column Description
Date / Hour The date and hour (YYYYMMDDHH) when the error occurred
Status The current handling status of the error
Severity The classified severity level (Low, Medium, High, Critical)
Time Stamp Error The exact date and time the error was logged
Core Version The DataHub core version at the time of the error
Flow Description The name of the integration flow that failed
Exception Message A preview of the error message
Number of Errors The total count of entries in this group (parent + children)
Email Status The result of the latest error-rule email: Scheduled, Sent, or Failed. Empty when no email was sent for this error
Email Error Why the latest error-rule email could not be sent. Filled only when Email Status is Failed
Run Id The unique identifier of the specific flow run that failed
Flow Id The unique identifier of the integration flow
Modified Date/Time When the error entry was last modified
Modified User ID The user who last modified the entry

Default View

The page opens with a filter on Status = New so you immediately see only unhandled errors. You can remove this filter to see all error statuses.


Error Status

Each error entry has a Status that reflects its handling lifecycle. Use the Set Status action to progress an error through the workflow.

Status Description
New The error has just arrived and has not yet been looked at
To Investigate The error has been flagged for further analysis
Investigating Someone is actively looking into the error
Restarted The related flow run has been restarted from the DataHub portal
Resolved The underlying issue has been fixed
No Action Required The error is known and does not require any action
Cannot Reproduce The error could not be reproduced and is considered closed
Important

Changing the status of a parent entry also updates all its child entries to the same status.


Error Severity

The Severity indicates how critical an error is. It is assigned automatically by the Error Rule Evaluator when new errors are imported. If no rule matches, the default severity is Medium.

Severity Description
Low Minor issue; no immediate action needed
Medium Standard integration error; should be investigated in due course
High Significant error affecting business processes; investigate promptly
Critical Blocking error with direct business impact; requires immediate attention

The severity is color-coded in the list for quick visual identification: Critical errors are shown in red, High in orange/amber, Medium in yellow, and Low in green.

Note

The severity of a parent entry reflects the highest severity found among itself and all its child entries.


Actions

Set Status

Changes the status of one or more selected error entries. A menu lets you choose from all available statuses. Child entries of a selected parent are updated automatically.

Open Flow Runs

Opens the DataHub Flow Run list filtered to the flow and run associated with the selected error. Use this to inspect the individual action steps and find exactly where the error occurred.

For a full explanation of the Flow Run view, see Data Hub Transactions.

Open Error Message

Opens the full exception message text in a viewer. This contains the detailed description of what went wrong.

Open Stack Trace

Opens the technical stack trace for the error. This is useful when escalating to support as it shows the exact execution path through the DataHub core.

Email Call Stack

Opens the technical details of the latest failed error-rule email. Available only when Email Status is Failed. If the email failed before sending started, for example because no email company is set, there is no call stack. Email Error then explains the reason.

Download Email Call Stack

Saves that same call stack as a text file. Available only when Email Status is Failed.

Error Rules

Opens the Error Rules configuration list. See Error Rules below. From that list you can also choose Initialize Email Template to create the standard notification email.

Refresh

Pulls new error messages from the Azure Queue and runs the Error Rule Evaluator. Use this to manually fetch the latest errors without waiting for the next scheduled run.

Delete

Deletes the selected error entries. When deleting a parent entry, all its child entries are also deleted. A confirmation dialog shows the number of records that will be removed.


Error Rules

Error Rules classify incoming errors by severity, based on the error text or on how often the same error occurs. Without rules, every error is Medium. With rules, you can flag a pattern as Critical, or mark a known harmless error as Low.

Each condition can also send an email. See Email notifications.

Rule Types

There are two levels of rules: General rules and Flow-specific rules.

General Rules

  • Apply to all errors, regardless of which flow they come from
  • Only one General rule entry is allowed
  • Contains multiple individual conditions (see Rule Conditions below)

Flow-specific Rules

  • Apply only to errors from a specific flow (identified by Flow Id)
  • Multiple flow-specific entries can exist — one per flow
  • Can optionally overwrite the General rules (see Overwrite General)

Overwrite General

When a Flow-specific rule has Overwrite General enabled, the General rules are not applied to errors from that flow. Only the conditions in the Flow-specific rule are evaluated.

When Overwrite General is disabled (default), both the General rules and the Flow-specific rules are evaluated together for errors from that flow.


Rule Conditions

Each rule entry (General or Flow-specific) contains one or more conditions. These are the actual matching criteria that determine whether a rule applies to a given error.

Condition Fields

Field Description
Rule Type The matching method: Contains, Regex, or Count
Value The value or pattern to match against
Priority Evaluation priority (lower number = higher priority)
Severity The severity level to assign when this condition matches
Send Email Sends an email when this condition matches. You can fill the template and the recipients first, and turn this on later
Email Template The email template used when Send Email is on
Mailing Group Contacts in this mailing group receive the email
To Addresses Extra email addresses. Separate several addresses with a semicolon or a comma

Rule Types

Contains

Performs a case-insensitive text search in the exception message. The rule matches if the error message contains the specified value anywhere in its text.

Example:

Rule Type: Contains
Value:     timeout
Severity:  Low

This rule matches any error whose message contains the word "timeout" (regardless of casing) and classifies it as Low severity.

Regex

Evaluates a regular expression pattern against the exception message. Useful for more precise matching, such as specific error codes or structured patterns.

Example:

Rule Type: Regex
Value:     ^HTTP 40[134]
Severity:  High

This rule matches errors where the message starts with HTTP 401, 403, or 404, and classifies them as High severity.

Note

The regex pattern is checked when you leave the Value field. An invalid pattern cannot be saved.

Count

Matches based on the total number of errors in a group (parent + children). Use this to escalate severity when the same error recurs many times.

Example:

Rule Type: Count
Value:     10
Severity:  Critical

This rule matches when a single error occurs 10 or more times, classifying the group as Critical.


Evaluation Logic

When new errors are imported, the Error Rule Evaluator applies the following logic:

  1. Collect applicable rules for the error's Flow Id:

    • Always include General rules, unless a Flow-specific rule has Overwrite General enabled
    • Include Flow-specific rules for the matching Flow Id if they exist
  2. Evaluate each condition against the error:

    • Contains: check if exception message contains the value
    • Regex: check if exception message matches the pattern
    • Count: check if the total error count meets or exceeds the threshold
  3. Determine the final severity from all matched conditions:

    • The condition with the lowest Priority number wins
    • If multiple conditions share the same priority, the highest Severity wins
    • If no conditions match, the error receives the default severity: Medium
  4. Update both the child and parent error log entry with the determined severity

  5. Send email for every matched condition that has Send Email turned on. Severity and email are separate: the condition that wins the severity is not the only one that can send. See Email notifications.


Email notifications

Use an email when the right person should hear about an error without opening the DataHub Error List.

You choose the recipients on each condition. A general rule can send everyday integration errors to a shared mailbox. A rule for one flow, or for one error text, can send that case to a different address. The people who can fix the error receive it. Other errors stay on the list.

When an email is sent

The check runs when new errors are imported, with Refresh or with the scheduled import. A condition sends an email only when Send Email is on.

Rule type When the email is sent
Contains or Regex Once, for the first occurrence of that error. Repeats of the same error do not send another email.
Count Once, when the number of occurrences reaches the number in Value. Later occurrences do not send another email.

Every matching condition with Send Email on sends its own email. A general rule and a flow rule can therefore notify different people about the same error. If the flow rule has Overwrite General on, the general rule is not used, and only the flow rule can send an email.

The email is created and sent in the company you select as Email Company. The template and the mailing group are read from that company.

What the recipient gets

Initialize Email Template creates a sample you can send as-is or adjust:

Sample
Code DH2ERROR
Description DataHub Error Notification
Language English
Subject The flow name and the severity, for example DataHub Error: Order import [High]
Body Flow, flow id, severity, source, time of the error, error id, the exception message, the stack trace, and a link Open this error in Business Central

On the condition line, Email Template opens the template so you can change the subject and the body. The template source type is DataHub Error Log. For the layout of templates, see E-mail Template.

If DH2ERROR already has text, you are asked whether to replace it with this sample.

See whether the email went out

Email Status and Email Error on the DataHub Error List show the result of the latest email for that error. When several rules send an email, the list shows the latest result.

Email Status What it means
(empty) No error-rule email has been started for this error
Scheduled The email is waiting to be sent
Sent The email was sent
Failed The email was not sent. Email Error gives the reason

When the status is Failed, use Email Call Stack or Download Email Call Stack. Some failures happen before sending starts. Then there is no call stack, and Email Error is the explanation. Two examples:

  • No email company is set in DataHub Setup, so DataHub error emails cannot be sent.
  • The email company {company id} in DataHub Setup no longer exists.

To analyze the integration error itself, use Open Flow Runs, or follow Data Hub Error Analysis.

How to configure it

Create the template and the mailing group in the company that sends the mail, and select that same company as Email Company. Both belong to one company. A template created in another company is not used, and the email fails. That company must already be able to send email from 3PL Dynamics. If sending fails, Email Status becomes Failed and Email Error shows why.

  1. Switch to the company that should send the emails.
  2. Search for DataHub 2 Setup (Alt+Q).
  3. Under Error Notifications, set Email Company to the company you are in. This setting is the same for every company in the environment.
  4. On DataHub 2 Setup, or on DataHub Error Rule, choose Initialize Email Template. Template DH2ERROR is created in the current company and opened. Adjust the text if you need to. You can also create your own template and set its source type to DataHub Error Log.
  5. If a group of people should receive the email, search for Mailing Groups, create the group in this same company, and add the contacts. You can also type addresses on the rule.
  6. Open DataHub Error Rule, open the general rule or the flow rule, and on the condition line set:
    • Email Template
    • Mailing Group, To Addresses, or both. Separate several addresses with a semicolon or a comma.
    • Send Email
  7. You can fill the template and the recipients before you turn Send Email on. When you turn it on, a template is required, and at least a mailing group or an address is required.
Note

The error import does not have to run in the email company. The email is still sent from the company you selected.

Example. Everyday errors go to the integration mailbox. A missing customer on the order flow goes to the order desk.

General rule, applies to every flow:

Rule Type Value Send Email Recipients
Contains timeout Yes Mailing group Integration support

Flow rule for the order flow, Overwrite General off:

Rule Type Value Send Email Recipients
Contains customerId not found Yes To Addresses orderdesk@example.com

A timeout on that flow is mailed only to integration support. A missing customer id is mailed only to the order desk, because the general rule does not match that text. If you also want the order desk to receive timeouts for this flow only, add that condition on the flow rule.


Configuration Guide

Setting Up a General Rule

Use general rules to catch common error patterns that apply across all your integrations.

  1. Navigate to Alt+Q → DataHub Error Rule
  2. Click New
  3. Set Entry Type to General
  4. Enter a Description (e.g. General Error Classification)
  5. In the Conditions subpage, add one or more conditions:
    • Choose a Rule Type
    • Enter the Value to match
    • Set the Priority (start at 1, 2, 3 for multiple conditions)
    • Select the Severity to assign when matched
    • To notify someone, set Email Template, the recipients, and Send Email. See How to configure it.
  6. Save the record
Important

Only one General rule entry is allowed. All general conditions must be added as lines within that single entry.

Setting Up a Flow-specific Rule

Use flow-specific rules to override or extend the general classification for a specific integration.

  1. Navigate to Alt+Q → DataHub Error Rule
  2. Click New
  3. Set Entry Type to Flow
  4. Use the Flow Id assist-edit button (or type directly) to select the flow
  5. Enter a Description
  6. Optionally enable Overwrite General if this flow's rules should replace the general ones
  7. Add Conditions in the subpage
  8. Save the record

Example Setup

The following example shows a typical classification setup:

General Rule (applies to all flows):

Rule Type Value Priority Severity
Contains timeout 10 Low
Contains connection refused 10 High
Count 5 20 High
Count 20 20 Critical

Flow-specific Rule for an order integration flow:

Rule Type Value Priority Severity
Contains customerId not found 1 High
Regex ^HTTP 5\d\d 1 Critical
Count 3 5 Critical

With Overwrite General disabled, both rule sets are evaluated for that flow. The condition with the lowest priority number (1 in the flow rule) will take precedence when it matches.


Common Scenarios

Scenario 1: All errors arrive with Medium severity

No Error Rules are configured. Configure a General rule with Contains and Count conditions to start classifying errors automatically.

Scenario 2: Known harmless errors show as High severity

Add a Contains or Regex condition for that specific error message with a lower priority number and set Severity to Low. Because it has lower priority, it will take precedence over general Count rules.

Scenario 3: A specific flow needs different thresholds

Create a Flow-specific rule for that flow. Enable Overwrite General if the general rules don't apply at all, or leave it disabled if you want both to be evaluated.

Scenario 4: Recurring errors should escalate automatically

Add a Count condition with the desired occurrence threshold. Set a higher Severity level and a priority number higher than specific message conditions (so message-specific rules can still override when applicable). Turn on Send Email on that Count line if someone should be mailed once, at the moment the threshold is reached.

Scenario 5: Different people should hear about different errors

Leave Send Email off on conditions that only classify severity. Turn it on for the conditions that need a person. Use the general rule for the shared mailbox, and a flow rule for a team that only cares about one flow. Leave Overwrite General off when both should be able to send. Turn it on when this flow should ignore the general recipients.


Show new errors on the role center

These role centers include Integration Activities:

  • WMS - TMS Role Center
  • WMS Order Processor Role Center
  • WMS Air/Ocean Role Center
  • TMS - AIR & Ocean Role Center
  • WMS Support Role Center

The tile No. of New DataHub Errors counts entries on the DataHub Error Log with status New. 10 or fewer is green, 11 to 20 is amber, and more than 20 is red. Choose the tile to open those errors.

  1. Search for Role Center Layout List (Alt+Q).
  2. Choose Initialize. This creates the standard role center layouts, including Integration Activities and the tile No. of New DataHub Errors.
  3. On the role center, choose Personalize and show Integration Activities.

To change this tile, or to add another one, follow Role Center Layout.