Docs
/
Troubleshoot
/

Data Is Stale, Frozen, or Has Gaps

Data Is Stale, Frozen, or Has Gaps

This article covers the family of "my data isn't moving" symptoms:

  • A tag's live value looks frozen and never changes
  • Trends show flat lines, big gaps, or far fewer points than expected
  • History isn't recording for a tag, device, or the whole system
  • A model complains that its input data is old or stale

These symptoms fall into two very different buckets, and the fix depends on which one you have:

SymptomLikely bucketWhere to look
Live value frozen, or trends completely emptyCollection stopped upstream (device/tag not scanning)Collection stopped
Live value updates fine, but trends are flat or sparseHistorization is dropping points (compression/range)Tag is not historizing properly

Collection Has Stopped: Nothing Is Being Recorded

If the live value is frozen and Trends are empty, the tag isn't being collected at all. History can only record what collection produces, so fix collection first.

Work outward from the tag:

  1. Is the tag failed? A failed tag isn't producing values. Check its error code and error message. See Bad, Missing, or Frozen Tag Values.
  2. Is the parent device failed or stopped? If the device is down, every tag on it stops. A tag whose device is stopped shows an info banner telling you the device is stopped and the tag won't update until it is enabled and running. See Troubleshoot a Connection.
  3. Is the value a calculated or mapped value? An expression or value-mapping failure freezes the output even when the source tags are fine. See Expression & Value-Mapping Errors.

The three diagnostic fields (error code, error message, error detail), the status/quality legend, and the auto-clear behavior are all documented once in Reading Status, Quality & Errors. Start there if you need to interpret a code or status color.

History-Write Failure Codes

A tag can be collected successfully and still fail to write to history. In that case the live value is current, but a gap appears in Trends for that period. These are the codes that signal a history-write failure specifically:

EntityCodeNameWhat it means
Tag200Failed To HistorizeThe tag's value could not be written to history. The tag is still being scanned and its live value is available, but historical data has a gap for this period.
Device13Failed To Write To Long Term HistoryTag values could not be written to the time-series database. The device is still scanning and live values are available, but historical data will have a gap.
Device12Failed To Write To Model HistoryTag values could not be written to the model (in-memory / AI) history store. The device is still scanning, but model predictions may be affected.

Tag is not historizing properly

If a tag's live value is updating but Trends show flat lines or far fewer recorded points than expected, the cause is almost always a mismatch between the tag's Range Min / Max and the compression settings — not a collection problem.

Koios uses Swinging Door Trending (SDT) to compress historical data. SDT maintains a tolerance band (a "door") around the last recorded point and discards new values that fall inside the band, because the trend line already represents them. The width of that band is calculated as a percentage of the tag's configured range, not of the actual value.

The default tag range is 0–100. If a tag only moves between 0 and 1 but its range is left at 0–100, the tolerance band is wider than the entire signal, so almost nothing passes the filter. The result is silent data loss: the live value updates, but Trends look flat or empty.

How to fix it:

  1. Set the tag's Range Min and Range Max to match the actual expected value range (for example 0–1, not 0–100).
  2. Review the global Compression Deviation. A deviation of 1–2% is a good starting point for most process data.
  3. If only this tag needs special treatment, enable Override global compression settings on the tag's Configuration tab and set a tighter deviation, or disable compression for this tag alone.
  4. To disable compression globally, turn off the Compression Enabled toggle on the Retention page.

If Trends look wrong but the live value is fine, run through these in order:

  • Flat line with almost no points → compression is discarding everything. See Tag is not historizing properly.
  • A gap for a specific time window → collection or history-write stopped during that window. Check the tag/device error history and the history-write failure codes above.
  • Older data disappeared entirely → retention cleanup deleted it. History older than the configured History Database Retention period is permanently removed. Review the period in Data Retention.
  • Everything stopped at the same moment across many tags → a device outage or a service/resource problem. See Service Health & Resource Alarms.

A Model Complains About Old or Stale Data

Models read from history, so historization problems surface as binding errors. Check the model's Bindings tab for these two codes:

CodeNameWhat it meansWhat to do
1Not Enough Historical DepthThere isn't enough historical data to fill the model's input window. Common right after a model is first enabled or a device is restarted.Wait for enough scan cycles to accumulate the required depth. The error detail shows how much more data is needed.
2Stale History DataThe most recent data point is too old — the tag's device has stopped collecting, or the data is arriving with significant delay.Fix collection on the bound tag's device, then the binding recovers automatically.

Both codes point back at historization: Stale History Data almost always means collection stopped on an upstream device, and Not Enough Historical Depth can be aggravated by aggressive compression starving the history. If the depth error won't clear even after waiting, confirm the bound tag is actually recording points — a compression/range mismatch can prevent history from ever filling the window. See Tag is not historizing properly and the model inference requirements for how depth is calculated. For the full model and binding error catalog, see A Model or Binding Isn't Running.

Still Stuck?

If a tag records live values but history stays empty even after correcting the range and compression:

  1. Confirm the tag's live value is genuinely changing — SDT correctly stores nothing for a truly constant signal until Maximum Time Between Samples forces a sample.
  2. Set the device's log level to Debug and watch for historization errors during a scan. See Logs.
  3. Check disk space and service health — a full disk or a stalled service stops all writes. See Service Health & Resource Alarms.
  4. If you're preparing a support ticket, gather the details in Collecting Diagnostics for Support.

What's Next