Skip to content
Latchkey

Octopus "Machine is in an unavailable state" in CI

A deployment target is in the Unavailable status. Octopus marks a machine Unavailable after repeated failed health checks or connection attempts and skips it during deployment, so a step scoped to that machine or role has no valid target.

What this error means

The deploy log shows "Machine web-01 is in an unavailable state and will be skipped" or the deployment fails because the only matching target is Unavailable.

octo
Machine 'web-01.internal' is in an unavailable state and will be skipped
for this deployment.

Common causes

Repeated failed health checks

The target failed successive health checks (agent down, unreachable, or erroring), so Octopus set its status to Unavailable.

The agent or host is down

The underlying machine or its Tentacle/agent is stopped, so it cannot pass a health check and stays Unavailable.

How to fix it

Restore the target and re-check its health

  1. Bring the machine and its agent back online.
  2. Run a health check so Octopus re-evaluates the status.
  3. Confirm the target returns to Healthy before the deploy targets it.
Terminal
octo health-check --environment "Production" \
  --server "$OCTOPUS_URL" --apiKey "$OCTOPUS_API_KEY"

Ensure another healthy target covers the role

If one machine stays Unavailable, keep at least one other healthy target in the same role so the deployment still has somewhere to run.

How to prevent it

  • Keep redundant healthy targets per role for resilience.
  • Alert when a target transitions to Unavailable.
  • Run scheduled health checks so status reflects reality before deploys.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →