October 14, 2026CLI 1.9.4Docs 2.5.30Dashboard 2.44.1Python SDK 2.22.1C# SDK 2.20.1Rust SDK 2.20.1C++ SDK 2.14.1MATLAB SDK 2.14.1

Catch upload rejections before the test runs

A run the station had already executed could be refused at upload, stay in the upload queue, and say only "input validation failed". The station now refuses up front what the dashboard would refuse, the dashboard accepts the limits a test can legitimately compare against, and a rejection names the field.

  • Added support for object and mixed-list limits on validators (== {} for "no deviation from the reference configuration"), so these runs upload instead of being refused
  • Changed the identify form and Python assignments to refuse serial, part, revision, batch and sub-unit values longer than 60 characters or outside letters, digits and _ . : + - before the test runs, and to refuse measurement names over 100 characters
  • Fixed == [3] failing against a recorded [3]: numbers now compare by value in ==, != and in
  • Improved upload errors to name the rejected field, for example phases[2].measurements[4].validators[0].expected_value
  • Fixed depends_on: a dependency on a phase further down the file is honoured, unknown keys and cycles are refused in every stage, and a teardown cut by the shutdown limit is recorded as an error instead of disappearing

Try these features today