Skip to content
Latchkey

Deno Deploy "deployctl: command not found" in CI

deployctl is the Deno Deploy CLI. It is installed via deno install and placed in Deno's bin directory. If that directory is not on PATH, or the install step was skipped, the shell cannot find deployctl.

What this error means

The deploy step fails with "deployctl: command not found" (exit code 127). Deno itself may be installed, but the deployctl binary is missing or not on PATH.

Deno
/home/runner/work/_temp/script.sh: line 1: deployctl: command not found
Error: Process completed with exit code 127.

Common causes

deployctl was never installed

The workflow set up Deno but did not install the deployctl CLI, so the binary does not exist on the runner.

Deno's bin directory is not on PATH

deployctl installs into ~/.deno/bin, which is not added to PATH in the same step, so the shell cannot resolve the command.

How to fix it

Install deployctl and run it directly

Install the CLI with deno install, then invoke it by its full path or add the bin directory to PATH.

Terminal
deno install -gArf jsr:@deno/deployctl
export PATH="$HOME/.deno/bin:$PATH"
deployctl deploy --project=my-project main.ts

Use the official deploy action

The denoland/deployctl action installs and runs the CLI for you on the runner.

.github/workflows/ci.yml
- uses: denoland/deployctl@v1
  with:
    project: my-project
    entrypoint: main.ts

How to prevent it

  • Install deployctl as an explicit step before the deploy.
  • Add ~/.deno/bin to PATH after installing global Deno tools.
  • Prefer the denoland/deployctl action so installation is handled.

Frequently asked questions

What causes ""deployctl: command not found""?
The workflow set up Deno but did not install the deployctl CLI, so the binary does not exist on the runner.
How do I fix "deployctl: command not found"?
Install the CLI with deno install, then invoke it by its full path or add the bin directory to PATH.

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card