Docs

Documentation / Help

Troubleshooting

Common messages for signup, sign-in, agent, run and step problems, with their causes and fixes.

Where to start#

  • Deployment page: shows the status and log of every step. The error message is usually at the end of the failed step's log.
  • Infrastructure > Agents: shows each agent's status (PENDING, ONLINE, OFFLINE) and its last heartbeat.
  • Environment readiness: the card on the environment page lists missing agents, scanners and settings as ok, warn or fail.

Signup and sign-in#

Message Cause and fix
"This subdomain is taken, choose another one." The subdomain is in use. Pick another one.
"This subdomain is reserved, choose another one." The name is reserved by the system. Pick another one.
"This verification link has expired." The link is valid for 24 hours. Sign up again.
"This subdomain was taken by someone else before you confirmed." A subdomain is not reserved until you confirm. Sign up again with another name.
"The robot check failed." Reload the page and try again.
"Too many attempts." Wait a little and try again.
"Signups are temporarily closed because we are at capacity." Try again later.
"Invalid username or password." Your username is your signup e-mail. After 10 failed attempts the account is locked for 15 minutes.
"Too many requests. Try again in a moment." Too many sign-in attempts in a short time. Wait a little.
"No account in this organization uses that email address..." For Google or GitHub sign-in, an admin must add you first. See Google and GitHub sign-in.
"We found no verified e-mail address on that account." The provider account has no verified e-mail, or your primary GitHub address is a noreply address. Verify your address or use the form.

For errors while connecting GitHub, GitLab or Azure DevOps, see Connect your source control.

Agents#

Symptom Cause and fix
The agent stays PENDING The agent registered but cannot send heartbeats. Check the agent logs and that the machine can reach your organization's address over HTTPS.
The agent is OFFLINE The agent missed its heartbeat: it stopped, lost its network connection or the machine is down. It turns ONLINE by itself when it reconnects.
agent identity revoked in the agent log The agent's identity was revoked and the agent shuts itself down. Reinstall it with a new registration token. See Installing an agent.
An upgrade shows "stalled" The agent did not come back with the new version within 5 minutes. Check the agent logs and that the image can be pulled.
"upgrade the agent" The feature you asked for (external secrets, a debug session and so on) needs a newer agent. Upgrade the agent.

Waiting runs#

State Cause and fix
"Waiting for an online agent in this environment to claim the job" The environment has no ONLINE agent, or all of them are busy. Check that an agent is running; raise Jobs per agent if needed.
A step has runs_on labels and the run never starts No agent has matching labels. Install an agent with the right labels (EJO_AGENT_LABELS) or change runs_on.
PENDING_APPROVAL The environment requires approval. An approver must approve the deployment.
WAITING The main pipeline is waiting for the merge gate's PR pipeline to succeed. See Triggers and bindings.
SUPERSEDED A newer push arrived for the same branch or PR and the older run was cancelled.
New deploys do not start A freeze window may be active. Check the environment page.

Step errors#

Message Cause and fix
shell step "..." has no image and this environment does not allow host shell A SHELL step without an image wants to run on the host, but the environment does not allow it. Give the step an image. See Environments.
no Dockerfile found at "..." dockerfile_path is wrong. Check the Dockerfile path in the repository.
kaniko_build requires a registry_id on the step, or the GHCR_USERNAME and GHCR_TOKEN variables The Kaniko build has no registry to push to. Define a registry under Infrastructure > Registries and pick it on the step with registry_id.
trivy scanner is not installed in namespace "..." Press Install Trivy on the environment page.
no namespace configured and no K8sNamespace host fact available A Kubernetes step is not running on a Kubernetes agent, or the namespace could not be determined. Set namespace on the step, or run it in a Kubernetes environment.
needed artifact "..." not found The artifact requested with needs_artifacts was not found. Check that the run that produces it succeeded and that the name is right.
supply chain policy: ... The image failed the environment's supply chain policy (signature, SBOM or critical vulnerabilities). See Supply chain security.
... was withdrawn: ... The pipeline uses a withdrawn step pack version. Update the pipeline to another version. See Step packs.

Tip: You do not have to run a failed run from scratch. Rerun failed steps on the deployment page reuses the steps that succeeded. See Deploy verification and rollback.

SCM and webhooks#

On GitLab and Azure DevOps you can see the response to each webhook delivery on the SCM side: Recent events on the project's Settings > Webhooks page on GitLab, and the subscription history under Project Settings > Service hooks on Azure DevOps. When EJO ignores an event it answers 200 with "status": "ignored" and a reason.

All SCMs#

Symptom Cause and fix
No run starts after a push Check the binding's triggers and commit branch. If the same webhook arrives twice, no second deployment is created.
no repository binding for this repo There is no binding for this repository, or the name on the binding is not exactly what the SCM sends (GitHub owner/repo, GitLab path_with_namespace, Azure DevOps org/project/repo).
event branch does not match the bound branch The push went to a branch other than the binding's commit branch.
this event type is not enabled on the repository binding The event's trigger is off on the binding (for example Pull request or Tag).
draft pull request or draft merge request Draft PRs do not start runs. Mark the PR as ready.
Clone fails on a PR from a fork Fork PRs get no clone credentials, so cloning a private repository fails for them.

GitHub#

Symptom Cause and fix
Private repositories cannot be cloned, commit statuses do not show GitHub is not connected, or the EJO Cloud app has no access to this repository. Check Settings > GitHub App.
The merge button is not blocked Private repositories on the GitHub Free plan have no rulesets; the main pipeline still stays WAITING.

GitLab#

Symptom Cause and fix
Private repositories cannot be cloned, commit statuses and merge request notes do not show No GitLab token is set in EJO, or the token cannot access the project. See Connect your source control.
SCM token is not configured; copy the delivery URL and secret into the SCM UI on the webhook The hook could not be created automatically. Enter the URL and secret under the project's Settings > Webhooks on GitLab by hand.
401 invalid webhook token under Recent events The Secret token on GitLab does not match the webhook secret in EJO.
500 gitlab webhook secret is not configured on the master under Recent events EJO has no saved webhook for GitLab. Create one under Settings > Webhooks.
gitlab token is not configured; merge gate requires gitlab.token ... when saving a binding The merge gate needs a token. Keep Block merge until this pipeline succeeds off until a token is set.
The merge button is not blocked The token lacks the api scope or enough permission on the project. Turn on Pipelines must succeed on GitLab by hand; the main pipeline still stays WAITING.
gitlab token is not configured or gitlab group "..." was not found on an SCM group Group scans need a token; check the group path and the token's access.

Azure DevOps#

Symptom Cause and fix
Private repositories cannot be cloned, statuses and pull request comments do not show No Azure DevOps PAT is set in EJO, or the PAT lacks Code (Read) and Code (Status). See Connect your source control.
SCM token is not configured; copy the delivery URL and secret into the SCM UI on the webhook The service hooks could not be created automatically. Add them under Project Settings > Service hooks for Code pushed, Pull request created and Pull request updated by hand.
401 invalid webhook secret in the service hook history The X-Ejo-Webhook-Secret header is missing or the secret does not match.
500 azure devops webhook secret is not configured on the master in the service hook history EJO has no saved webhook for Azure DevOps. Create one under Settings > Webhooks.
azure devops PAT is not configured; merge gate requires azure_devops.pat ... when saving a binding The merge gate needs a PAT. Keep the merge gate off until a PAT is set.
The merge button is not blocked The PAT lacks Policy (Read & write). Add a branch policy on the target branch that requires the status with genre ejo and name pipeline by hand; the main pipeline still stays WAITING.
The preview is not removed after the PR closes The Pull request updated service hook is missing. Completed and abandoned PRs arrive with that event.
use organization/project on an SCM group An Azure DevOps group must be entered as org/project.

Still stuck?#

Write to destek@ejocloud.com. See Support.

Next steps#

Last updated: October 16, 2026