Skip to content

Pin langgraph-prebuilt<1.0.10 to fix preview CI (closes #15)#19

Merged
swinney merged 2 commits into
devfrom
fix/langgraph-prebuilt-pin
Jun 3, 2026
Merged

Pin langgraph-prebuilt<1.0.10 to fix preview CI (closes #15)#19
swinney merged 2 commits into
devfrom
fix/langgraph-prebuilt-pin

Conversation

@swinney

@swinney swinney commented Jun 3, 2026

Copy link
Copy Markdown
Member

Summary

Pin langgraph-prebuilt<1.0.10 in all three requirements files. Resolves the ImportError: cannot import name 'ExecutionInfo' from 'langgraph.runtime' that has been blocking the preview PR-CI job on every open PR since build-base-images started succeeding (#13).

Root cause

  • langgraph==1.0.2 is pinned in requirements/requirements-base.txt (and the two base-image copies).
  • langgraph-prebuilt is a transitive dep, unpinned, so pip resolves to the latest (1.1.0).
  • langgraph-prebuilt 1.0.10+ adds from langgraph.runtime import ExecutionInfo, ServerInfo to prebuilt/tool_node.py — symbols that arrived in langgraph 1.0.10+ (don't exist in 1.0.2).
  • The chatbot container crashes at import time before /api/health ever responds.

Fix

Pin langgraph-prebuilt<1.0.10 so pip resolves to 1.0.9, which only imports Runtime from langgraph.runtime (a symbol that exists in langgraph 1.0.2).

Verified locally:

$ pip install --dry-run langgraph==1.0.2 'langgraph-prebuilt<1.0.10'
Would install langgraph-1.0.2 langgraph-checkpoint-3.0.1 langgraph-prebuilt-1.0.9 langgraph-sdk-0.2.15

When langgraph is bumped past 1.0.10 in a future PR, this pin can be dropped (langgraph-prebuilt ecosystem versions ship in lockstep with langgraph).

Test plan

  • Local pip install --dry-run confirms resolver picks 1.0.9
  • Inspected tool_node.py across versions 1.0.0 → 1.0.10: confirmed 1.0.9 imports only Runtime while 1.0.10 adds the breaking imports
  • CI preview job goes green on this PR
  • PR Add human-grading benchmark harness (Argilla + HUIT Bedrock judge) #18 (and any other open PR) gets unstuck once this lands

Closes #15.

🤖 Generated with Claude Code

)

langgraph-prebuilt 1.0.10 added `from langgraph.runtime import
ExecutionInfo, ServerInfo` to prebuilt/tool_node.py — symbols that
arrived in langgraph 1.0.10+. With our pinned langgraph==1.0.2 and an
unpinned langgraph-prebuilt, pip resolves to the latest (1.1.0) which
crashes the chatbot container at import time:

    ImportError: cannot import name 'ExecutionInfo' from 'langgraph.runtime'

That import failure is what the `preview` PR-CI job has been failing
on since the build-base-images job started succeeding (commit
405b10a). Every open PR hits it.

Pin langgraph-prebuilt<1.0.10 in all three requirements files
(requirements/requirements-base.txt + the two base-image
requirements.txt copies). Pip now resolves to langgraph-prebuilt 1.0.9
which only imports `Runtime` from langgraph.runtime — a symbol that
exists in langgraph 1.0.2. Verified the resolver picks 1.0.9 via
`pip install --dry-run langgraph==1.0.2 langgraph-prebuilt<1.0.10`.

When langgraph itself is bumped past 1.0.10, this pin can be dropped.

Closes #15.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 3, 2026 17:33

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Pins langgraph-prebuilt<1.0.10 alongside the existing langgraph==1.0.2 pin to prevent CI/preview container startup from failing due to an upstream langgraph-prebuilt import that requires newer langgraph.runtime symbols (issue #15).

Changes:

  • Add an explicit langgraph-prebuilt<1.0.10 constraint to keep langgraph-prebuilt compatible with langgraph==1.0.2.
  • Apply the same pin consistently across the shared base requirements file and both base-image template requirements files.
  • Document the rationale in requirements/requirements-base.txt, with lightweight pointers from the template copies.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
requirements/requirements-base.txt Adds rationale + pin to prevent langgraph-prebuilt/langgraph version skew from breaking imports.
src/cli/templates/dockerfiles/base-python-image/requirements.txt Mirrors the langgraph-prebuilt<1.0.10 pin used for base image builds.
src/cli/templates/dockerfiles/base-pytorch-image/requirements.txt Mirrors the langgraph-prebuilt<1.0.10 pin used for base image builds.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

swinney pushed a commit that referenced this pull request Jun 3, 2026
First fix attempt pinned `langgraph-prebuilt<1.0.10`, expecting 1.0.9 to
be the last working version. PR #19's first preview-job run revealed
1.0.9 already has the broken import:

    1.0.8: from langgraph.runtime import Runtime          ✓
    1.0.9: from langgraph.runtime import ExecutionInfo, ServerInfo  ✗
    1.0.10: same break

Tighten to <1.0.9. Resolver now picks 1.0.8 (verified via
`pip install --dry-run langgraph==1.0.2 langgraph-prebuilt<1.0.9`).
1.0.8 only imports Runtime, which exists in langgraph 1.0.2.

Comment in requirements/requirements-base.txt updated with the correct
boundary so the next person doesn't repeat the off-by-one.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
First fix attempt pinned `langgraph-prebuilt<1.0.10`, expecting 1.0.9 to
be the last working version. PR #19's first preview-job run revealed
1.0.9 already has the broken import:

    1.0.8: from langgraph.runtime import Runtime          ✓
    1.0.9: from langgraph.runtime import ExecutionInfo, ServerInfo  ✗
    1.0.10: same break

Tighten to <1.0.9. Resolver now picks 1.0.8 (verified via
`pip install --dry-run langgraph==1.0.2 langgraph-prebuilt<1.0.9`).
1.0.8 only imports Runtime, which exists in langgraph 1.0.2.

Comment in requirements/requirements-base.txt updated with the correct
boundary so the next person doesn't repeat the off-by-one.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@swinney swinney force-pushed the fix/langgraph-prebuilt-pin branch from 2ec2077 to d3d6edb Compare June 3, 2026 18:02
@swinney swinney merged commit fdd004c into dev Jun 3, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

langgraph 1.0.2 vs langgraph-prebuilt 1.0.10 — ImportError in chatbot container

2 participants