v1.1.1

roboflow/inferencev1.1.1Mar 13, 2026by PawelPeczek-Roboflow

AI Summary

Updates the Execution Engine to v1.8.0, adding control flow lineage and fixing a nested batch filtering issue.

Key Highlights

  • Execution Engine v1.8.0 with control flow lineage
  • Loosened compatibility check for control flow steps
  • Fix for `Batch.remove_by_indices` nested batch behavior

Breaking Changes

  • `Batch.remove_by_indices` nested batch fix: nested Batch elements are now recursively filtered by the same index set

New Features

  • Control flow lineage
  • Batch.remove_by_indices recursive filtering

Full Release Notes

# 🚀  Added

## 🌀 Execution Engine `v1.8.0`
 
Steps gated by control flow (e.g. after a `ContinueIf` block) can now run even when they have **no data-derived lineage** — meaning they don't receive batch-oriented inputs from upstream steps. Lineage and execution dimensionality are now derived from control flow predecessor steps. Existing workflows are unaffected.
 
* 🔀 **Control flow lineage** — The compiler now tracks lineage coming from control flow steps (e.g. branches after `ContinueIf`). When a step has no batch-oriented data inputs but is preceded by control flow steps, its execution slices and batch structure are taken from those control flow predecessors.
* 🔓 **Loosened compatibility check** — Previously, steps with control flow predecessors but no data-derived lineage would fail at compile time with `ControlFlowDefinitionError`. That check is now relaxed: lineage is derived from control flow predecessors when no input data lineage exists. The strict check still runs when the step *does* have data-derived lineage.
* ✨ **New step patterns** — Steps triggered only by control flow that don't consume batch data now compile and run correctly. For example, you can send email notifications or run other side-effect steps after a `ContinueIf` without wiring any data into parameters like `message_parameters` — the step will execute once per control flow branch.
* 🐛 **`Batch.remove_by_indices` nested batch fix (breaking)** — When removing indices via `Batch.remove_by_indices`, nested `Batch` elements are now recursively filtered by the same index set. Previously, only the top-level batch was filtered while nested batches were left unchanged, which could cause downstream blocks to silently process `None` values or fail outright.
 
Please review our [change log 🥼](https://inference.roboflow.com/workflows/execution_engine_changelog/) which outlines all introduced changes. **PR:** [#2106](https://github.com/roboflow/inference/pull/2106) by [@dkosowski87](https://github.com/dkosowski87)

> [!WARNING] 
> One breaking change is included due to a bug fix in `Batch.remove_by_indices` with nested batches (see below) — impact is expected to be minimal. 


## 🚧 Maintenance
* fix version for exe/dmg download by @Erol444 in https://github.com/roboflow/inference/pull/2104
* Qwen3.5 Block Safety by @Matvezy in https://github.com/roboflow/inference/pull/2111
* Fix ONNX batch size limit fast path for fixed-batch models by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/2112
* Redirect versionless models auth and metadata to new model registry when `USE_INFERENCE_MODELS=True` by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/2105
* feat: expose stream/pipeline metrics via Prometheus /metrics endpoint by @alexnorell in https://github.com/roboflow/inference/pull/2097
* Fix aliases mixup between rfdetr-xlarge and rfdetr-2xlarge by @Erol444 in https://github.com/roboflow/inference/pull/2054
* metadata on upload to dataset block by @digaobarbosa in https://github.com/roboflow/inference/pull/2064
* Qwen3 5 docs by @Erol444 in https://github.com/roboflow/inference/pull/2114
* Update execution engine version in tests to 1.8.0 by @dkosowski87 in https://github.com/roboflow/inference/pull/2115


**Full Changelog**: https://github.com/roboflow/inference/compare/v1.1.0...v1.1.1