Skip to content
Latchkey

Bazel Remote Execution "capabilities" Failure in CI

Bazel offloads actions to a Remote Build Execution (RBE) backend via --remote_executor. The build fails when the executor is unreachable, the platform/capabilities do not match, or auth is wrong. Connectivity issues are transient and clear on retry.

What this error means

Actions fail with "Remote Execution Strategy unavailable" or a capabilities/platform mismatch against the RBE endpoint. A misconfig fails every run; an RBE outage is intermittent and recovers with --remote_local_fallback or a retry.

Bazel output
ERROR: Failed to query remote execution capabilities:
  UNAVAILABLE: io exception
ERROR: Remote execution is requested but no remote executor is available.

Common causes

RBE endpoint unreachable

A network blip, DNS failure, or overloaded RBE backend times out the capabilities query, so no actions can run remotely.

Execution platform/capabilities mismatch

The declared --remote_executor platform or the toolchain’s exec properties do not match what the backend offers, rejecting actions.

Auth/TLS misconfiguration

A missing credential or TLS trust problem rejects the connection to the RBE service.

How to fix it

Fall back locally on RBE outages

Let actions run locally when the executor is briefly unavailable so a transient outage does not fail the build.

.bazelrc
# .bazelrc
build:remote --remote_executor=grpcs://rbe.example:443
build:remote --remote_local_fallback
build:remote --remote_retries=3 --remote_timeout=120

Fix platform and auth config

  1. Match the exec platform / exec_properties to what the RBE backend supports.
  2. Verify the executor URL, scheme, and port, and refresh credentials/TLS trust.
  3. Use --announce_rc to confirm the remote config group actually applied.

How to prevent it

  • Set --remote_local_fallback so RBE outages degrade to local builds.
  • Keep exec platform/properties matched to the RBE backend.
  • Rotate RBE credentials before expiry and monitor backend availability.

Frequently asked questions

What causes "remote execution failure"?
A network blip, DNS failure, or overloaded RBE backend times out the capabilities query, so no actions can run remotely.
How do I fix remote execution failure?
Let actions run locally when the executor is briefly unavailable so a transient outage does not fail the build.
Can Latchkey fix this automatically?
Yes. Latchkey runs your GitHub Actions on managed runners that detect this failure, apply the fix, and retry the job automatically - self-healing is on by default.

Related guides

References

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