Runtime checks

While it works, DataMind Oda checks its own parts so their saved data and live state stay consistent. This page explains what the checks do, what a failure means for your task, and how the checks can be narrowed.

What the checks do

When a check fails

If a check fails, Oda stops the operation and reports the failure. It does not continue on state the check could not confirm.

Switching checks off and narrowing them

Questions, answered

What does DataMind Oda check while it works?

Its own parts. Each check belongs to one part and confirms that the part's saved data and its live state stay consistent. The checks run on their own while Oda works.

What does an INVARIANT message mean?

An internal check failed. The message names the part that failed its check, begins invariant violated by "<part>":, and carries the code INVARIANT. Oda stops the operation instead of continuing on state the check could not confirm.

What happens to a task when a check fails?

The operation that hit the failure stops: Oda reports the failure instead of continuing on state the check could not confirm.

What should I do when a check fails?

Send the request again. If the same failure comes back, keep the message exactly as shown and contact your DataMind OS administrator with it. Updates and troubleshooting covers how to report a problem, and What Oda shows and what its logs keep explains why the shown text should be kept as it is.

Can the checks be switched off?

Yes. All the checks can be switched off together, and switched back on. The set that runs can also be narrowed with an allow list and a block list.

What happens when a part matches both lists?

The block list wins: the part is not checked.

When do changes to the checks take effect?

The lists are read when Oda starts and stay fixed while it runs. Change a list, then start Oda again for the change to take effect.

Is every part of Oda checked?

No. Only the parts that carry a check are covered, and not every part has one.

How is a failed check different from a command failure?

A command failure means a command did not succeed. A failed check means Oda's own state failed a check: the message names the part, carries the code INVARIANT, and Oda stops instead of continuing on state it could not confirm.