DataMind Oda applies some changes while it runs and others at the next start, and a start that fails reports what went wrong. This page covers when a saved change takes effect, and how to read the reports Oda prints when a start fails or when a settings file cannot be applied.
With hot reload on, a change you save while Oda is open applies at once:
Oda watches the settings files it manages by their exact paths, wherever they sit, and re-reads a watched file only after its write has stopped changing for two seconds, so a file that is still being saved is never read half-written. When Oda closes, it stops watching and cancels reloads that were still waiting.
Hot reload covers these rules in full, and Live plugin settings covers the values you change in a plugin's form.
requires a process restart: make the change, then start Oda again.A change to the settings file that Oda cannot apply is reported instead of applied:
patch: entry "<name>" not found.A settings file must hold a list. A file that is empty, or holds only comments, fails the next start. To switch off what the file adds, keep its header lines and leave an empty list: []. The profile settings file covers the file itself.
Oda treats these parts as required: the agent loop, the web server, the module and connection layers, the headless runner, the automation face and the SDK server. When one of them is asked to start and cannot activate, the whole start stops. A required part that a profile leaves out, or turns off, does not fail the start.
The report is printed once, in this order:
startup failed: N required plugin(s) did not activate.Failed plugins (N):, one line per part with the reason it could not activate; a (required) marker sits beside the required ones.Plugins waiting for services (N):, a table pairing each part with the services it is still waiting for.Reasons you may see on a failing line: failed to import (the part could not be loaded), a part whose switch could not be read, or pending (waiting for service: X).
Oda then closes the parts it already started, saves the full start-up diagnostics, and exits with code 1. Nothing is left half-running.
If only optional parts failed, the start continues: the report warns warning: N entry/, and the lines after it name what was left out and why.
A failure that happens before Oda's parts can load at all reads fatal load failure: with the failure's stack. Oda exits with code 1 after a short cleanup wait; a cleanup that gets stuck delays that exit but never cancels it.
Startup and diagnostics covers how to work through a failed start.
A bundle that cannot be loaded is skipped, and its selection is kept so a later start tries it again. The message names it: Selected profile bundle "<name>" could not be loaded; repair or remove its bundle selection. Repair the bundle, or remove it from the profile's selections.
Oda reads its start-up values from three places, highest first:
. env file in the folder you launch from.. env file in the Oda home folder.sets "<NAME>", which only the launching environment may set. The fix it offers is to export the value where you launch Oda, or to put it in the home folder's . env, which does not travel with a project folder.HTTP_PROXY, HTTPS_PROXY, ALL_PROXY, NO_PROXY) are accepted only from the home folder's . env.0 and false. A profile without telemetry needs no switch.oda --profile web --port 8080 serves on port 8080 even when the configuration names another port, and the rule holds when the value is written as an expression.--help prints the help and exits with code 0, without starting anything. A rejected flag value prints an error and exits with a code other than 0.-- needs the doubled form: -- --.Command line and flags covers Oda's flags and the config and schema dumps.
With hot reload on, at once: plugin changes and settings edits are applied while Oda runs. A change seen while Oda is still starting is applied once it is ready. Hot reload covers the rules.
Replacing an installed plugin or bundle version, a change that would point a plugin's package at a different folder, and every change when hot reload is off. Everything else is applied while Oda runs.
Oda reported the file and the line and column where it failed. The settings already in effect stay until you correct the file; fix it and save again, and Oda retries. The profile settings file covers the file and how to edit it.
A settings file must hold a list. A file that is empty, or holds only comments, fails the next start. To switch off what the file adds, keep its header lines and leave an empty list: [].
The whole report: it is printed once, and the full start-up diagnostics are saved with it. Start with the first reason in the list of failing parts. What Oda shows and what its logs keep explains why you should keep the text exactly as shown, and Troubleshooting covers reporting the problem.
Failed plugins (N): names each part that did not start, with its reason, marking the required ones with (required). Plugins waiting for services (N): pairs the parts that are still waiting with the services they need.
If the part is required, no: the start stops. If it is optional, yes: the run continues without it and warns warning: N entry/. A required part that a profile leaves out or turns off does not fail the start.
A failure that happened before Oda's parts could load at all, followed by the failure's stack. Oda exits with code 1 after a short cleanup wait; a cleanup that gets stuck delays the exit but never cancels it.
Oda skips it and keeps its selection, so a later start tries again. Repair the bundle, or remove it from the profile's selections.
Highest first: the environment you launch Oda with, a . file in the folder you launch from, then a . file in the Oda home folder. A file may not set the values that decide how Oda starts; the refusal names the variable, and the fix is to export it at launch or to move it to the home folder's file.
The flag. A flag wins over the configuration, even when the value is written as an expression, and it is resolved once at start, so a later reload never resets it.