From f6ccffc938e56dd4b289d8dbd866cc6cc594893f Mon Sep 17 00:00:00 2001 From: Jessie Ibarra Date: Sat, 28 Mar 2026 15:41:26 -0400 Subject: [PATCH] fix(cli): validate deployment name before build to catch invalid characters langgraph deploy auto-generates a default deployment name from the working directory, which can contain underscores. Deployment names only allow letters, numbers, and hyphens, so an underscore in the name caused a cryptic 500 error from GCP Artifact Registry deep in the deploy flow. This adds a client-side validation check immediately after the name is resolved (from --name flag, env var, or prompt) so users get a clear, actionable error before any Docker build or network calls happen. Co-Authored-By: Claude Sonnet 4.6 --- libs/cli/langgraph_cli/cli.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libs/cli/langgraph_cli/cli.py b/libs/cli/langgraph_cli/cli.py index 993a69f64..0b28c4ec8 100644 --- a/libs/cli/langgraph_cli/cli.py +++ b/libs/cli/langgraph_cli/cli.py @@ -852,6 +852,13 @@ def _deploy( default_name = _normalize_image_name(pathlib.Path.cwd().name) name = click.prompt("Deployment name", default=default_name) + if name and not re.fullmatch(r"[a-zA-Z][a-zA-Z0-9-]+", name): + raise click.UsageError( + f"Invalid deployment name '{name}'. " + "Names must start with a letter and contain only letters, numbers, and hyphens. " + "Tip: replace underscores with hyphens (e.g. 'my-deployment')." + ) + secrets = _secrets_from_env(env_vars) # Use buildx to cross-compile for amd64 when running on a non-x86_64 host