Connection and Timeout Errors
Remote connection/protocol failed with: execution failed
Remote connection/protocol failed with: execution failed
This error is often a sign that a cache write is timing out. By default, bazel’s
remote_timeout flag limits all remote execution calls to 60 seconds.Solution
We recommend using the following flag to increase this remote timeout:These expensive writes should only happen once when artifacts are initially written to the cache, and shouldn’t happen on subsequent builds.
Platform and Executor Errors
exec user process caused "exec format error"
exec user process caused "exec format error"
This error occurs when your build is configured for darwin (Mac OSX) CPUs, but attempting to run on Linux executors.If you’d like to add Mac executors to your BuildBuddy Cloud account, please contact our sales team.
rpc error: code = Unavailable desc = No registered executors
rpc error: code = Unavailable desc = No registered executors
Network and Connectivity Issues
WARNING: Remote Cache: UNAVAILABLE: io exception
WARNING: Remote Cache: UNAVAILABLE: io exception
Cache Issues
CacheNotFoundException: Missing digest
CacheNotFoundException: Missing digest
During remote build execution, Bazel may encounter a This error indicates that Bazel cannot find file(s) in the BuildBuddy Remote Cache that it expects to be present.
CacheNotFoundException error with the message Missing digest.Diagnosis
Check cache requests
Navigate to the Invocation URL → Cache → “Cache requests” and paste the hash into the Filter input.This will show whether Bazel has attempted to upload the blob to the BuildBuddy Remote Cache.
Configuration Options
The number of retry attempts and the delay between retries can be configured:--remote_retries(default 5)--remote_retry_max_delay(default 5s)--experimental_collect_system_network_usage(default true since Bazel 8)
The
--experimental_collect_system_network_usage flag collects network usage data on the Bazel host machine. This network data will be displayed as a graph in the “Timing” tab of the Invocation page.Solution: Cache Lease Extension
The current workaround involves two parts:a. Maintain blob recordsUsing the--experimental_remote_cache_lease_extension and --experimental_remote_cache_ttl flags, Bazel will maintain a record of all blobs involved in the latest invocation in a separate thread.This thread will periodically “ping” the BuildBuddy Remote Cache, informing the server that these blobs are still in use by Bazel. The remote cache server will then update the last-used timestamps of these blobs accordingly.b. Automatic eviction retryWith the --experimental_remote_cache_eviction_retries (default 5) flag, Bazel will detect this specific error code and attempt to reset the local state and retry the build.This will clear Bazel’s local state and re-analyze the repository to determine which blobs are missing and which actions need to be re-executed.