Back to Langflow

LFX and Langflow version compatibility

docs/docs/Lfx/lfx-compatibility.mdx

1.11.0.dev395.7 KB
Original Source

Langflow and LFX are versioned together on the same major.minor line, so you can always tell which LFX release runs which flows.

Compatibility contract

LFX X.Y.N is guaranteed compatible with any flow exported from Langflow X.Y.M.

The major and minor numbers must match. The patches .N for LFX and .M for Langflow are released independently. An LFX patch fix does not require a Langflow patch release, and vice versa.

When LFX and a flow share the same major version but differ on minor, such as a flow exported from Langflow 1.9.x run with LFX 1.10.x, individual components may have been updated since the flow was saved. Use lfx upgrade to check compatibility and apply safe automatic fixes before running or serving such a flow. For more information, see Check and upgrade flows with lfx upgrade.

Compatibility matrix

Langflow versionCompatible LFX versionNotes
1.10.x1.10.xFully compatible. Same major.minor line.
1.11.x1.11.xFully compatible. Same major.minor line.
1.9.x or earlier1.10.xUse lfx upgrade --upgrade-flow=safe to apply safe component schema upgrades before running.
Any 1.x.x0.5.xLFX 0.5.x was a standalone release before version alignment. It is no longer compatible with Langflow 1.10+ flows.

Check and upgrade flows with lfx upgrade

The lfx upgrade command inspects a flow against the built-in component registry and reports any components that have become incompatible or that have safe automatic upgrades available.

lfx upgrade compares each component in the flow against a bundled index at _assets/component_index.json that ships with the LFX release.

Run it with no flags to get a read-only compatibility report. The command reads your flow JSON, walks through every component node, and prints one line per node with its status. It does not modify the file.

bash
lfx upgrade my-flow.json

Example output:

text
  [SAFE] Agent (AgentComponent) - id: abc123
  [OK] Chat Output (ChatOutput) - id: def456
CLI outputWhat it meansExample
[OK]Component matches the current registry.No action needed.
[SAFE]Component code changed, but ports and fields your flow uses still line up. lfx upgrade --write can apply this update automatically.An output that previously emitted only Message now also supports Data.
[BREAKING]A port or field your flow relies on was removed.An input that accepted Message and Data now accepts only Message and your flow uses a Data component.
[BLOCKED]The component type no longer exists in this LFX build.A bundle-only component is not installed in your environment.

To apply fixes or enforce stricter checks, run:

bash
# Apply all safe upgrades and overwrite the file
lfx upgrade my-flow.json --write

# Fail if any safe upgrades are still pending (use after a dry run before running `--write`)
lfx upgrade my-flow.json --strict

Inline compatibility checking with --upgrade-flow

Both lfx run and lfx serve accept an --upgrade-flow option so you can apply compatibility checks at execution without a separate lfx upgrade step.

bash
# Check only — fail if any component is blocked
lfx run my-flow.json --upgrade-flow=check "Hello world"

# Apply safe upgrades in memory, then run
lfx run my-flow.json --upgrade-flow=safe "Hello world"

# Same options for serve
lfx serve my-flow.json --upgrade-flow=safe
ModeBehavior
checkReports compatibility issues and exits non-zero if any component is blocked. No changes are written to disk.
safeApplies all safe upgrades in memory, then runs or serves the flow. Blocked components still cause a non-zero exit.

Pin versions

Pin lfx~=1.10.0 in requirements.txt to track all patch releases for a given Langflow minor without crossing into the next minor automatically.

text
# requirements.txt — allows 1.10.1, 1.10.2, … but not 1.11.0
lfx~=1.10.0

Migrating from LFX 0.5.x to 1.10.0

LFX was realigned from its standalone 0.5.x line onto Langflow's major.minor line, so the version number jumps from 0.5.0 to 1.10.0 in one release. This is a version-numbering change, not 95 minor releases of new features.

This jump can affect existing dependency pins in unexpected ways:

Pin styleEffect
lfx==0.5.x or lfx<1.0Does not upgrade. The deployment stays on 0.5.x.
lfx>=0.5,<1Does not upgrade. The upper bound excludes 1.10.0.
lfx>=0.5 (no upper bound)Upgrades automatically to 1.10.0 on the next install.

Going forward, pin with lfx~=1.10.0 so you receive compatible patches without silently crossing minor lines.

Engine-only LFX and lfx[bundles]

pip install lfx installs the engine only — no component bundles. For headless or serverless deployments that execute flows using provider components without the full Langflow server, install the long-tail bundle package alongside the engine:

bash
uv pip install "lfx[bundles]"

This is equivalent to installing lfx plus lfx-bundles[all], including the torch-pulling long-tail providers CUGA and Code Agents. It does not install graduated standalone packages such as lfx-openai or lfx-exa. uv pip install langflow instead depends on lfx-bundles[all-no-torch] plus the individual lfx-* packages, so Langflow stays torch-free by default. For a slimmer image, install only the provider packages a deployment actually executes, for example uv pip install lfx lfx-openai "lfx-bundles[qdrant]". There is intentionally no lfx[all] extra, because that is equivalent to uv pip install langflow. Some components require a torch opt-in install.