linera-io/linera-protocol · error

Found one or several issue(s) while querying validator {}

Error message

Found one or several issue(s) while querying validator {}

What it means

Single-validator variant of the health query: after running the check suites against one validator (`self.public_key` / `self.address`) and printing the per-check results via `results.print(...)`, any collected errors cause this bail naming the validator's address. The printed report above the error lists exactly which sub-checks failed.

Source

Thrown at linera-service/src/cli/validator.rs:725

        &self,
        context: &ClientContext<impl linera_core::Environment>,
    ) -> anyhow::Result<()> {
        let node = context.make_node_provider().make_node(&self.address)?;
        let chain_id = self.chain_id.unwrap_or_else(|| context.default_chain());
        println!("Querying validator about chain {chain_id}.\n");

        let results = context
            .query_validator(&self.address, &node, chain_id, self.public_key.as_ref())
            .await;

        for error in results.errors() {
            tracing::error!("{}", error);
        }

        results.print(self.public_key.as_ref(), Some(&self.address), None, None);

        if !results.errors().is_empty() {
            anyhow::bail!(
                "Found one or several issue(s) while querying validator {}",
                self.address
            );
        }

        Ok(())
    }
}

impl QueryBlock {
    async fn run(
        &self,
        context: &ClientContext<impl linera_core::Environment>,
    ) -> anyhow::Result<()> {
        let node = context.make_node_provider().make_node(&self.address)?;
        let chain_id = self.chain_id.unwrap_or_else(|| context.default_chain());
        let height = self.height;
        println!(

View on GitHub (pinned to 6c226ddcb3)

Solutions

  1. Read the per-check errors in the printed results above the bail message
  2. Confirm the validator process is up and the address/public key in the configuration are correct
  3. Re-run the query once transient issues (restart in progress, network blip) are cleared
  4. If errors persist, compare the validator's logs against the failing checks
Defensive patterns

Strategy: validation

Validate before calling

# Confirm the single validator is reachable before the full query suite
addr=127.0.0.1:9100
host=${addr%:*}; port=${addr##*:}
timeout 5 bash -c "</dev/tcp/$host/$port" || { echo "$addr unreachable"; exit 1; }

Try / catch

match validator.run().await {
    Err(e) if e.to_string().contains("issue(s) while querying validator") => {
        // per-check errors were printed; inspect them instead of retrying blindly
        eprintln!("validator {} unhealthy: {e}", validator.address);
    }
    result => result?,
}

Prevention

When it happens

Trigger: Running a single-validator query (e.g. `linera validator query <address>`) where one or more sub-checks return errors — `results.errors()` non-empty after the suites complete.

Common situations: Debugging one misbehaving validator; pointing at a stale address after reconfiguration; the validator restarting or syncing mid-query so some probes fail.

Related errors


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