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

  1. Read the printed per-validator output above the bail — it identifies which endpoints failed and why
  2. Restore the failing validator: check its process, port, and logs, then restart it
  3. Re-run the command once every validator is reachable
  4. 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

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


AI-assisted analysis of linera-io/linera-protocol@6c226ddcb3 (2026-08-22). Data as JSON: /api/errors/36d4bcfd2a7f268d. Report an issue: GitHub.