linera-io/linera-protocol · error
Found issues while querying validators
Error message
Found issues while querying validators
What it means
The aggregate validator query path in `linera-service/src/cli/validator.rs` probes every configured validator, records per-validator errors, and prints a combined results table. After printing, it bails whenever at least one validator could not be queried successfully (`has_errors`), so the command's non-zero exit code reflects the unhealthy network rather than a silent partial result.
Source
Thrown at linera-service/src/cli/validator.rs:392
.await;
if !results.errors().is_empty() {
has_errors = true;
for error in results.errors() {
tracing::error!("Validator {}: {}", spec.public_key, error);
}
}
results.print(
Some(&spec.public_key),
Some(spec.network_address.as_str()),
None,
None,
);
}
if has_errors {
anyhow::bail!("Found issues while querying validators");
}
Ok(())
}
}
impl Update {
async fn run(
&self,
context: &mut ClientContext<impl linera_core::Environment>,
) -> anyhow::Result<()> {
tracing::info!("Starting batch update operation");
let time_start = std::time::Instant::now();
// Parse the batch file or stdin
let batch = parse_batch_file(self.file.clone())
.with_context(|| format!("parsing batch file `{}`", self.file))?;
View on GitHub (pinned to 6c226ddcb3)
Solutions
- Read the printed per-validator output above the bail — it identifies which endpoints failed and why
- Restore the failing validator: check its process, port, and logs, then restart it
- Re-run the command once every validator is reachable
- Verify the wallet's committee/validator configuration is current (not pointing at retired validators)
Defensive patterns
Strategy: validation
Validate before calling
# Probe each validator before running the aggregate query
for addr in $(linera wallet show | grep -oP '\b[\w.+-]+:\d+\b'); do
timeout 5 bash -c "</dev/tcp/${addr%:*}/${addr##*:}" \
|| echo "validator $addr unreachable — fix before querying"
done Try / catch
match run(&validators).await {
Err(e) if e.to_string().contains("Found issues while querying validators") => {
// partial results were printed above; treat as degraded, not fatal
log::warn!("some validators failed to query: {e}");
}
other => other?,
} Prevention
- Keep validator processes supervised (systemd/CI job) so dead validators restart before queries run
- Refresh the wallet's committee configuration after reconfigurations so it does not query retired validators
- Treat the printed per-validator table as the diagnostic source — the bail only summarizes it
When it happens
Trigger: Running the multi-validator query command (e.g. `linera validator list`) while one or more validators are unreachable, misconfigured, or return error responses; the individual query failures accumulate into `has_errors`.
Common situations: A validator process down after a crash or OOM; stale address/TLS config in the wallet; firewall or port issues; querying during a reconfiguration when part of the committee is rotating.
Related errors
- Found faulty validators
- Found one or several issue(s) while querying validator {}
- Benchmark requires the 'opentelemetry' feature to be enabled
- Missing network description
- cannot forget the default chain `{chain_id}`; switch to anot
AI-assisted analysis of linera-io/linera-protocol@6c226ddcb3 (2026-08-22).
Data as JSON: /api/errors/36d4bcfd2a7f268d.
Report an issue: GitHub.