nautechsystems/nautilus_trader · error
{context} verification is unavailable
Error message
{context} verification is unavailable What it means
Raised by the same verification-outcome helper when the verification outcome is Unavailable: the library could not obtain an independent verification (e.g. the verifying RPC call failed or returned nothing), so it cannot confirm the transaction or state is valid. It fails closed rather than proceeding unverified.
Source
Thrown at crates/adapters/blockchain/src/execution/client.rs:1977
Retain,
ScanReplacement(VerifiedBlockHeader),
}
fn verified_value<T>(outcome: VerificationOutcome<T>, context: &str) -> anyhow::Result<T> {
required_verification(outcome, context).map(|verified| verified.value)
}
fn required_verification<T>(
outcome: VerificationOutcome<T>,
context: &str,
) -> anyhow::Result<Verified<T>> {
match outcome {
VerificationOutcome::Verified(verified) => Ok(verified),
VerificationOutcome::Disagreement(_) => {
anyhow::bail!("{context} verification disagreed")
}
VerificationOutcome::Unavailable(_) => {
anyhow::bail!("{context} verification is unavailable")
}
VerificationOutcome::Retryable(_) => {
anyhow::bail!("{context} verification is retryable")
}
VerificationOutcome::LocallyInvalid(_) => {
anyhow::bail!("{context} verification is locally invalid")
}
}
}
fn validate_transaction_authorization(
authorization: Option<&TransactionAuthorization>,
to: Address,
value: U256,
input: &[u8],
) -> anyhow::Result<()> {
match authorization {
None => Ok(()),View on GitHub (pinned to 18893faf8b)
Solutions
- Check RPC/verifier endpoint health and rate limits, then retry
- Confirm the target block/receipt is available on the configured node
- Use a fallback or backup RPC provider for verification
- Increase retry/backoff around submission so verification runs after state settles
Defensive patterns
Strategy: fallback
Validate before calling
// Probe verification availability before submitting
let probe = client.verification_health().await;
if probe.is_err() { switch_to_backup_rpc(); } Try / catch
match res {
Err(e) if e.to_string().contains("verification is unavailable") => {
// fail over to backup RPC, then retry verification
}
r => r?,
} Prevention
- Configure multiple RPC endpoints for verification failover
- Monitor provider rate limits and health before trading windows
- Ensure node is fully synced before submitting transactions
When it happens
Trigger: The verification provider (RPC/verifier) returns VerificationOutcome::Unavailable — e.g. the block/receipt is not yet queryable, the verifier endpoint is down, or the requested data cannot be fetched.
Common situations: Provider outage or rate limiting during verification; querying a block height that the node has not synced; misconfigured verification endpoint in client config.
Related errors
- Finality verification disagreed with the receipt or finalize
- Finalized block {} does not contain transaction {}
- Included wrap transaction {tx_hash} has invalid block number
- WETH balance overflow for included transaction {tx_hash} at
- Finalized execution transaction {tx_hash} no longer has a re
AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08).
Data as JSON: /api/errors/edf2bc668bab150f.
Report an issue: GitHub.