langchain-ai/langgraph · error
Could not resolve image digest for
Error message
Could not resolve image digest for {remote_image}; falling back to the tag-based reference. Re-run with --verbose for details. What it means
Warning from the deploy image-resolution helper: after pushing, `docker image inspect` on the remote reference yielded no usable RepoDigest, so the deploy falls back to the plain tag-based image reference instead of the digest-pinned one. The deploy continues; only immutability of the reference is lost.
Solutions
- Re-run with --verbose to see why digest resolution failed (docker inspect output)
- Verify the image was actually pushed to the registry and the registry exposes RepoDigests
- Accept the tag-based fallback if digest pinning is not required for your workflow
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at libs/cli/langgraph_cli/deploy.py:923 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of langchain-ai/langgraph@38031739e5 (2026-08-26).
Data as JSON: /api/errors/2c75c356e66e181b.
Report an issue: GitHub.
Appendix: source
Thrown at libs/cli/langgraph_cli/deploy.py:923
records the registry's manifest digest there after a successful push.
Falls back to ``remote_image`` with a warning if no matching digest is
found, rather than failing the deploy.
"""
# rsplit preserves ``:port`` in the registry host.
repo_no_tag = remote_image.rsplit(":", 1)[0]
args: list[str] = ["docker"]
if docker_config_dir:
args += ["--config", docker_config_dir]
args += ["image", "inspect", "--format", "{{json .RepoDigests}}", remote_image]
stdout, _ = runner.run(subp_exec(*args, collect=True, verbose=verbose))
try:
digests = json_mod.loads(stdout or "[]") or []
except json_mod.JSONDecodeError:
digests = []
for d in digests:
if isinstance(d, str) and d.startswith(f"{repo_no_tag}@sha256:"):
return d
_get_emitter().warn(
f"Could not resolve image digest for {remote_image}; "
"falling back to the tag-based reference. Re-run with --verbose for details."
)
return remote_image
def _run_local_build(
*,
client: HostBackendClient,
deployment_id: str,
step: int,
config: pathlib.Path,
config_json: dict,
verbose: bool,
pull: bool,
api_version: str | None,
base_image: str | None,
image_name: str | None,View on GitHub (pinned to 38031739e5)