Skip to content

Error codes

Every problem is reported as an issue with a code, a location in the config, a reason and a suggested fix, and several issues are reported together when possible:

[E_TARGET_REGULATED] interventions[0]: 'TIC-101.cv' is the regulated variable of loop TIC-101; nobody can set it directly. Fix: Change its reference instead: target 'TIC-101.sp'.

In Python, catch homeostat.HomeostatError (or ScenarioError, CompileError, SimulationError); its issues list holds the issues and to_dicts() gives them as dictionaries.

Code Stage Meaning
E_YAML loading The file is not valid YAML.
E_FILE loading The scenario file does not exist.
E_SCHEMA validation A key is unknown, missing or has the wrong type or value.
E_BAD_DISTRIBUTION drawing A distribution is malformed (for example a non-positive standard deviation).
E_BAD_GENERATOR drawing A plan or fault generator cannot make a plan (a missing key, a non-positive campaign or rate, invalid weights).
E_DRAW_REJECTED drawing Every draw of a plant failed validation; narrow the distributions.
E_UNKNOWN_LIBRARY building No domain library with that name is installed.
E_LIBRARY_VERSION building The pinned library version is not the installed one, or is not an integer.
E_UNKNOWN_TEMPLATE building The library has no template with that name.
E_UNKNOWN_PARAM building A template has no parameter with that name.
E_BAD_PARAM building A parameter value is invalid: the wrong type, outside its range, or not finite.
E_UNKNOWN_OP building There is no core operator with that name.
E_UNKNOWN_PORT building An operator has no input port with that name.
E_DUPLICATE_OPERATOR building Two operators have the same name.
E_DUPLICATE_WRITER building Two operators write the same signal; every signal has exactly one writer.
E_UNKNOWN_FAULT building The library has no fault with that name.
E_FAULT_NOT_APPLICABLE building The fault does not apply to the unit's template.
E_UNKNOWN_DEGRADATION building The library has no degradation with that name.
E_DEGRADATION_NOT_APPLICABLE building The degradation does not apply to the unit's template.
E_UNKNOWN_TASK building The library has no maintenance task with that name.
E_TASK_NOT_APPLICABLE building The task does not apply to the unit, for example cleaning a unit without fouling.
E_UNKNOWN_REGIME building A plan names a regime that is not defined under regimes.
E_FAMILY building A family setting is invalid, or plants in one batch disagree (for example on their starting regimes).
E_BAD_STEP compiling The base step dt is not positive.
E_UNKNOWN_SIGNAL compiling An input names a signal that nothing writes.
E_MISSING_INPUT compiling A required input of an operator is not connected.
E_ALGEBRAIC_LOOP compiling A cycle of signals has no operator without direct feedthrough; the error lists the cycle.
E_BAD_FEEDBACK_INPUT compiling A feedback operator reads a true value or an intermediate observation stage instead of a final measured signal.
E_BAD_PERIOD compiling An update period or phase is not a whole number of steps, not finite, or a phase is not smaller than its period.
E_BAD_LANES compiling Per-lane values have the wrong count, are out of range, or target a parameter that must be equal on every lane.
E_BAD_MODULATION compiling A parameter modulation is neither scale nor shift.
E_NAME_COLLISION compiling A name is both an operator and a parameter path.
E_PARAM_NOT_PROMOTABLE compiling A structural parameter (a buffer size, a dead time, a list) cannot change during a run.
E_UNSTABLE_SOURCE compiling AR coefficients do not give a stationary process.
E_UNKNOWN_TARGET events An event targets a signal or parameter that does not exist; the fix suggests the closest name.
E_TARGET_REGULATED events An event targets a loop's regulated variable; change its setpoint instead.
E_TARGET_CONTROLLER_OUTPUT events An event targets a controller output or the valve it drives; use manual mode and man_out instead.
E_TARGET_NOT_SCHEDULABLE events An event targets a signal written by a dynamic operator; target one of its parameters instead.
E_TARGET_NOT_PROMOTED events An event targets a parameter that was not promoted when the graph was compiled.
E_BAD_EVENT events An event is invalid: a bad action or profile, a mode that is not a step, a value outside the parameter's range, or no value to shift or scale yet.
E_BAD_INIT running init is not steady, none or {burn_in: ...}.
E_INIT_NO_STEADY_STATE running The plant did not settle before the step limit; the error names the states still moving.
E_ALREADY_STARTED running The engine was initialized or run already.
E_BAD_RUN running run(until) is not finite, not on the step grid, or before the current time.
E_BAD_RECORDING running The recording interval is not a positive whole number of steps.
E_DELAY_EXCEEDED running A variable transport delay needed longer than its max_delay; raise max_delay (or the template's maximum transit time).
E_LABELER labelling A labeler cannot label this scenario, for example visibility on a multi-lane scenario.