taktwerk run logs to stderr (RUST_LOG filters, default info; under systemd
journalctl -u <unit>, on a device taktwerk device logs), prints a summary when it stops and exits non-zero after a
model or connector failure. taktwerk check lists every problem it finds, not only the first.
an external input is older than its max_age_ms or was never written: the connector lost its server, a read returns a bad status, or a mapping rejects the value (out of min/max, unchanged longer than max_unchanged_s); the engine log names it once, events.csv has a stale event, taktwerk engine status lists stale_inputs
taktwerk.overruns counts
ticks take longer than tick_ms, or the thread wakes late: measure the mean and longest tick in the run summary, use [engine.realtime] and a dedicated CPU, or a longer tick
the heartbeat stops, outputs frozen
stale inputs (above); an instance down with on_error = "hold" or "safe" (taktwerk.status4, taktwerk.instance.<id>.state and code say which and why); or the engine stopped: a model returned an error (fault event, the code in the log)
a PLC keeps old values
the write gate is closed: gate_open is false, the gate event says why
a tunable write has no effect
it was refused (type, length, text capacity, range): refused … in events.csv, the writer got an error (OPC UA BadOutOfRange, BadUserAccessDenied for a read-only identity)
a write to the http API is refused
it needs writes = true (--http-writes) and Authorization: Bearer <token>
403 from the http API or serve
the request’s Host is not loopback or localhost, or the browser marked it cross-site: open the URL as printed
a recorder’s rows_dropped counts
the file sink fell a ring behind: a slow disk; raise buffer_s, record fewer signals or a larger every
a gap in a pulled record
taktwerk record was away longer than the engine’s buffer_s
the host key of … is …, not the pinned …: refusing to connect
the device’s key changed (reinstalled, or another machine at that address): check the new key on the device and pin it with device verify --accept-host-key <fingerprint>
no host key is pinned for …
verify the device first
the device's agent speaks interface N, this host M
the taktwerk on the device speaks another agent interface than the host’s: use a host whose version matches
unit-running
activate, rollback and a deploy refuse while the bundle’s unit runs: stop it first
arch-mismatch
the release was built for another architecture than the device’s
ci-refused
--yes is refused while CI is set
no journal lines from logs
the login user is not in the systemd-journal group