Skip to content

Search

Documentation

Troubleshooting Forge builds

What a red Forge build means — clone failures, export errors, timeouts, signing failures, missing checks — and what to do about each.

На этой странице

A failed target's reason is on its card. The build's Output above that line says why; start there.

The clone failed

The card says clone failed, and the output has Git's own message.

Git says Fix
Remote branch … not found the branch or tag does not exist; check the project's default branch, or the ref you asked for
Authentication failed, Repository not found, could not read Username the repository is private and Forge cannot reach it: it was registered by URL, or the App lost access. Register it from GitHub, or grant the App access to it again

The same table holds for the steps after the clone. submodules failed: a submodule is private and the App is not installed on it, or it points at a local path or file://, which Forge refuses — submodules are fetched over https only. git lfs pull failed: an LFS object is missing on the server, or the repository's LFS quota on GitHub is used up.

The export failed

The card says build exited and a number. This is the same balaur export you run locally, and it failed the same way it would there. Run it:

balaur export . --target <the target that failed>

If it passes on your machine and fails on Forge, the difference is almost always one of these:

  • A file that is on your disk but not committed. Forge builds the commit. git status shows what you have not added.
  • project.toml is not at the repository's root.
  • Something fetched at build time. A build has no network.

Timed out

The target ran past 45 minutes and was stopped. A warm export takes seconds and a cold one minutes, so this usually means something in the project waits forever — a script that loops at import, for instance. The last lines of the output show where it stopped.

"Wait for a running build to finish."

Three builds are already queued or running on your account. Open one from Projects and let it finish, then press Build now again. Pushes do not need this: a push over the limit waits for a slot on its own.

The build is unsigned

The card's badge says unsigned with a note: that platform's section on the project's Signing page is not filled in. It is not an error; fill it in and build again. See Signing.

Signing failed

The target is red after a green export, and the output names the signing step. The credentials are there but do not work: a wrong certificate password, an expired certificate, a provisioning profile for another app, an Android key alias that is not in the keystore. The platform's guide under Signing says what each field has to be. Saving a corrected value replaces the old one.

No check on my commit

  • The App is not installed on that repository, or access was removed — see Taking access away.
  • More than ten pushes were already waiting, so this one was dropped. Press Build now once the queue drains.
  • The project was registered for a different repository. Pushes are matched by repository, so a fork builds only if it has its own project.

Something else

Write to us from the community page with the build's link — it is the URL of its page. The output on that page is what we will read first.