Skip to content

--remote_local_fallback bypassed when --remote_executor endpoint is unreachable #29129

@JSGette

Description

@JSGette

Description of the bug:

PR #27846 (cherry-picked to 9.0.0 via #27990) fixed fallback for --remote_cache by adding a RemoteExecutionCapabilitiesException catch in RemoteSpawnCache. However, there is a separate code path in RemoteExecutionService.buildRemoteAction() that catches RemoteExecutionCapabilitiesException and unconditionally converts it to a fatal ExecException, bypassing all fallback logic. This affects the --remote_executor + --remote_local_fallback combination.

Which category does this issue belong to?

No response

What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.

  1. Set --remote_executor=grpcs://unreachable-endpoint:443
  2. Set --remote_local_fallback
  3. Set --strategy=sandboxed (or let it default to remote)
  4. Run bazel build //...

Which operating system are you running Bazel on?

MacOS 26.2 (but also fails in Linux ARM64 container)

What is the output of bazel info release?

release 9.0.1

If bazel info release returns development version or (@non-git), tell us how you built Bazel.

No response

What's the output of git remote get-url origin; git rev-parse HEAD ?


If this is a regression, please try to identify the Bazel commit where the bug was introduced with bazelisk --bisect.

No response

Have you found anything relevant by searching the web?

No response

Any other information, logs, or outputs that you want to share?

No response

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions