Skip to content

Guards: Bad network causes supposedly good guards to get disabled

Summary

Bad network connectivity during <ClientCirc as Buildable>::extend (which does the Ntor Handshake with middle/2ndHop and exit/3rdHop relays), causes arti to disable supposedly perfectly good guards (1st Hop) and halt functioning (fail to select guards, to be exact).

Steps to reproduce:

  1. Apply this diff to achieve a poor man's simulation of bad network connectivity during the Ntor Handshake(s) with a middle/exit relay (ExtendNtor*):

    diff
    diff --git a/crates/tor-circmgr/src/build.rs b/crates/tor-circmgr/src/build.rs
    index 24b131a18..d34e2733b 100644
    --- a/crates/tor-circmgr/src/build.rs
    +++ b/crates/tor-circmgr/src/build.rs
    @@ -319,8 +319,9 @@ impl<R: Runtime, C: Buildable + Sync + Send + 'static> Builder<R, C> {
             guard_status: Arc<GuardStatusHandle>,
             usage: ChannelUsage,
         ) -> Result<Arc<C>> {
    -        let action = Action::BuildCircuit { length: path.len() };
    -        let (timeout, abandon_timeout) = self.timeouts.timeouts(&action);
    +        let _action = Action::BuildCircuit { length: path.len() };
    +        // For speeding things up
    +        let (timeout, abandon_timeout) = (Duration::from_secs(2), Duration::from_secs(4));
             let start_time = self.runtime.now();
    
             // TODO: This is probably not the best way for build_notimeout to
    diff --git a/crates/tor-circmgr/src/config.rs b/crates/tor-circmgr/src/config.rs
    index 144cb4157..887ef05e2 100644
    --- a/crates/tor-circmgr/src/config.rs
    +++ b/crates/tor-circmgr/src/config.rs
    @@ -312,7 +312,8 @@ fn default_max_dirtiness() -> Duration {
    
     /// Return the default value for `request_timeout`.
     fn default_request_timeout() -> Duration {
    -    Duration::from_secs(60)
    +    // For speeding things up
    +    Duration::from_secs(6)
     }
    
     /// Return the default value for `request_max_retries`.
    diff --git a/crates/tor-guardmgr/src/guard.rs b/crates/tor-guardmgr/src/guard.rs
    index 063a1017b..2dd06a82f 100644
    --- a/crates/tor-guardmgr/src/guard.rs
    +++ b/crates/tor-guardmgr/src/guard.rs
    @@ -766,7 +766,8 @@ impl Guard {
                         failure_ratio: ratio,
                         threshold_ratio: DISABLE_THRESHOLD,
                     };
    -                warn!(guard=?self.id, "Disabling guard: {:.1}% of circuits died under mysterious circumstances, exceeding threshold of {:.1}%", ratio*100.0, (DISABLE_THRESHOLD*100.0));
    +                // So that logs can be posted
    +                warn!("Disabling guard {}: {:.1}% of circuits died under mysterious circumstances, exceeding threshold of {:.1}%", *self, ratio*100.0, (DISABLE_THRESHOLD*100.0));
                     self.disabled = Some(reason.into());
                 } else if ratio > WARN_THRESHOLD && !self.suspicious_behavior_warned {
                     warn!(guard=?self.id, "Questionable guard: {:.1}% of circuits died under mysterious circumstances.", ratio*100.0);
    diff --git a/crates/tor-proto/src/tunnel/reactor/control.rs b/crates/tor-proto/src/tunnel/reactor/control.rs
    index 1eeb02cb9..1af6d68e6 100644
    --- a/crates/tor-proto/src/tunnel/reactor/control.rs
    +++ b/crates/tor-proto/src/tunnel/reactor/control.rs
    @@ -306,6 +306,8 @@ impl<'a> ControlHandler<'a> {
                     params,
                     done,
                 } => {
    +                // A poor man's simulation of bad network connectivity
    +                std::thread::sleep(std::time::Duration::from_secs(8));
                     let Ok((_id, circ)) = self.reactor.circuits.single_leg_mut() else {
                         // Don't care if the receiver goes away
                         let _ = done.send(Err(tor_error::bad_api_usage!(
    @@ -345,6 +347,8 @@ impl<'a> ControlHandler<'a> {
                     params,
                     done,
                 } => {
    +                // A poor man's simulation of bad network connectivity
    +                std::thread::sleep(std::time::Duration::from_secs(8));
                     let Ok((_id, circ)) = self.reactor.circuits.single_leg_mut() else {
                         // Don't care if the receiver goes away
                         let _ = done.send(Err(tor_error::bad_api_usage!(
    HEAD
    $ git show HEAD
    commit 2cc1debe194baf130b85a8b7f294d0f11314580b (HEAD -> 1951, origin/main, origin/HEAD, main)
    Merge: 37c0c70ac 02798ffc1
    Author: Jim Newsome <jnewsome@torproject.org>
    Date:   Thu May 1 22:05:22 2025 -0500
    
        Merge branch 'revert-workaround' into 'main'
    
        ci: bump shadow for EPOLLRDHUP fix
    
        Closes #1972
    
        See merge request tpo/core/arti!2968
    
  2. Optionally delete ~/.local/share/arti/state/guards.json. This is just to put emphasis on the fact that totally fresh/new guards pulled in from the Tor directory also get disabled forever.

  3. Run arti proxy and wait (check logs for time period) till logs from #1951 (closed) can be seen (Unable to select a guard relay: No usable guards. Rejected 60/60 as down...), then terminate arti.

  4. Optionally relaunch arti without changing anything, encounter arti still failing to select guards.

  5. "Fix" the bad network (git stash)

  6. Repeat Step 3.

What is the current bug behavior?

  1. Bad network connectivity during <ClientCirc as Buildable>::extend (which does the Ntor Handshake with middle/2ndHop and exit/3rdHop relays), causes arti to disable supposedly perfectly good guards (1st Hop).
  2. Bad network connectivity persists, and totally fresh/new guards pulled in from the Tor directory are disabled.
  3. max_sample_size is hit, will all the guards in sample being disabled.
  4. Even if network connectivity is restored, arti fails to select guards.

What is the expected behavior?

arti does not disable guards that experience failure owing to environmental conditions (here: bad network), and keeps functioning as usual.

Environment

  • Version: Arti 1.4.3
  • Operating system: Arch Linux, linux-lts 6.12.18-1
  • Install method: from git

Relevant logs and/or screenshots:

Pretty long logs
$ alias arti
alias arti='cargo run --profile quicktest --all-features -p arti -- '
$ time arti proxy
   Compiling tor-proto v0.30.0 (/home/name-redacted/oss/arti/crates/tor-proto)
   Compiling tor-chanmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-chanmgr)
   Compiling tor-guardmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-guardmgr)
   Compiling tor-ptmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-ptmgr)
   Compiling tor-circmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-circmgr)
   Compiling tor-dirclient v0.30.0 (/home/name-redacted/oss/arti/crates/tor-dirclient)
   Compiling tor-hsservice v0.30.0 (/home/name-redacted/oss/arti/crates/tor-hsservice)
   Compiling tor-dirmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-dirmgr)
   Compiling tor-hsclient v0.30.0 (/home/name-redacted/oss/arti/crates/tor-hsclient)
   Compiling arti-client v0.30.0 (/home/name-redacted/oss/arti/crates/arti-client)
   Compiling tor-hsrproxy v0.30.0 (/home/name-redacted/oss/arti/crates/tor-hsrproxy)
   Compiling arti-rpcserver v0.30.0 (/home/name-redacted/oss/arti/crates/arti-rpcserver)
   Compiling arti v1.4.3 (/home/name-redacted/oss/arti/crates/arti)
    Finished `quicktest` profile [optimized] target(s) in 51.79s
     Running `target/quicktest/arti proxy`
2025-05-02T10:03:16Z  INFO arti::subcommands::proxy: Starting Arti 1.4.3 in SOCKS proxy mode on localhost port 9150 ...
2025-05-02T10:03:16Z  INFO arti_client::client: Using keystore from "/home/name-redacted/.local/share/arti/keystore"
2025-05-02T10:03:16Z  INFO tor_hsservice: Using existing identity for service name-redacted: [scrubbed]
2025-05-02T10:03:16Z  INFO tor_hsservice: Launching onion service nickname=name-redacted
2025-05-02T10:03:17Z  INFO tor_dirmgr: Marked consensus usable.
2025-05-02T10:03:17Z  INFO tor_dirmgr: Loaded a good directory from cache.
2025-05-02T10:03:17Z  INFO arti::subcommands::proxy: Sufficiently bootstrapped; system SOCKS now functional.
2025-05-02T10:03:17Z  INFO arti::socks: Listening on [::1]:9150.
2025-05-02T10:03:17Z  INFO arti::socks: Listening on 127.0.0.1:9150.
2025-05-02T10:03:17Z  INFO arti::reload_cfg: Successfully reloaded configuration.
2025-05-02T10:03:17Z  INFO tor_dirmgr: Marked consensus usable.
2025-05-02T10:03:17Z  INFO tor_dirmgr: Directory is complete. attempt=1
2025-05-02T10:03:19Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:27Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:03:27Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:03:27Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:03:27Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:03:27Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:03:27Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:03:27Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 2 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Spent too long trying to construct circuits for this request
2025-05-02T10:03:27Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 2 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Spent too long trying to construct circuits for this request
2025-05-02T10:03:27Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 2 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Spent too long trying to construct circuits for this request
2025-05-02T10:03:27Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:29Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:31Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:35Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:35Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:35Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:37Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:37Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:39Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:45Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:03:45Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:03:45Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:03:45Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:03:45Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:03:45Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:03:45Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:03:45Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:45Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:47Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:47Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:03:55Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:04:02Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:04:02Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:04:02Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:04:02Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:04:02Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:04:02Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:04:02Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 2 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Spent too long trying to construct circuits for this request
2025-05-02T10:04:02Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 2 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Spent too long trying to construct circuits for this request
2025-05-02T10:04:02Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 2 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Spent too long trying to construct circuits for this request
2025-05-02T10:04:04Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:04:05Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:04:05Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:04:05Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:04:05Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:04:06Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:04:06Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:04:20Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:04:27Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:04:27Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:04:27Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:04:27Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:04:27Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:04:27Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:04:37Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:04:44Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:04:46Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:04:50Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:04:52Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:04:52Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:05:03Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:05:03Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:05:07Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:05:11Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:05:11Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:05:13Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:05:13Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:05:13Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:05:13Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:05:13Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:05:13Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:05:13Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:05:13Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:05:13Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:05:13Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:05:23Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:05:23Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:05:26Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:05:29Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:05:41Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:05:41Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:05:43Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:05:43Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:05:46Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:05:49Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:05:53Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:05:53Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:06:17Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:06:17Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:06:17Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:06:17Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:06:17Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:06:17Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:06:25Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:06:35Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:06:37Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:06:39Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:06:55Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:07:13Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:07:14Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:07:15Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:07:25Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:07:31Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:07:33Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:07:41Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:07:41Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:07:41Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:07:41Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:07:41Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:07:41Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:07:41Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:07:41Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:07:41Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:07:57Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:08:14Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:08:15Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:08:28Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:08:38Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:08:38Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:08:38Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:08:38Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:08:38Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:08:38Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit took too long to build
Attempt 3: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:08:38Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:08:38Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:08:38Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:08:40Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:09:14Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:09:16Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:09:30Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:09:30Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:09:32Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:09:46Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:09:46Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:09:46Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:09:46Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:09:46Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:09:46Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:09:46Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:09:46Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:09:46Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:10:03Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:10:05Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:10:05Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:10:27Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:10:29Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:10:49Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:10:51Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:11:09Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:11:11Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:11:39Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:11:39Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:12:03Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:12:06Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:12:06Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:12:06Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:12:06Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:12:06Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:12:06Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:12:06Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:12:06Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:12:06Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:12:06Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:12:22Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:12:24Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:12:44Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:12:45Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:12:46Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:12:52Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:12:56Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:13:24Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:13:26Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:14:06Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:14:08Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:14:10Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:14:34Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:14:36Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:15:00Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:15:22Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:15:26Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:15:46Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:15:46Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:15:54Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:16:30Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:16:32Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:16:36Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:16:57Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:16:57Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:16:59Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:17:01Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:17:13Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:17:15Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:17:19Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:17:19Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:17:19Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:17:19Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:17:19Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:17:19Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:17:19Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:17:19Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:17:19Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:17:51Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:17:51Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:17:53Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:18:09Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:18:12Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:18:13Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:18:15Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:19:03Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:19:13Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:19:29Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:19:31Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:19:37Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:20:07Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:20:07Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:20:26Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:20:28Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:20:32Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:20:44Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:20:46Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:20:50Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:21:28Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:21:28Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:21:38Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:22:06Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:22:36Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:22:38Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:22:52Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:22:52Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:22:52Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:22:52Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:22:52Z  WARN tor_circmgr::mgr: All circuit attempts failed due to timeout
2025-05-02T10:22:52Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:22:52Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:22:52Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:22:52Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 3: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:23:08Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:23:08Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:23:12Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:23:18Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:23:18Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:23:48Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:23:48Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:23:50Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:24:14Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:24:16Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:24:18Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:24:29Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:24:47Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:24:49Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:24:49Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:24:49Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:24:55Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:24:59Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:25:07Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 58/60 as down, then 2/2 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:25:07Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:25:07Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:25:18Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:25:59Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:26:00Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:26:20Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:26:28Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:26:29Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:26:42Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:26:44Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:26:45Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:26:45Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:26:47Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:26:57Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:27:06Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:27:07Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:27:17Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:28:13Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:28:15Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:28:23Z  WARN tor_guardmgr::guard: Disabling guard [scrubbed]: 100.0% of circuits died under mysterious circumstances, exceeding threshold of 70.0%
2025-05-02T10:28:27Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:28:27Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:28:27Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:28:37Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:28:47Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:28:57Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:28:57Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:29:07Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:29:17Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:29:27Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:29:27Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:29:37Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:29:50Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:29:57Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:30:07Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:30:12Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:30:17Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:30:27Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:30:37Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:30:42Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:30:47Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:30:57Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:31:07Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:31:12Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:31:17Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:31:27Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:31:37Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:31:41Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:31:45Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:31:47Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:31:57Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:32:07Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:32:15Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:32:17Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:32:27Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:32:37Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:32:37Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:32:47Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:32:57Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:33:07Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:33:07Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:33:17Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:33:37Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:33:37Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:33:38Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:33:38Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:33:38Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:33:38Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 2 times, but all attempts failed
Attempt 1: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
Attempt 2: Spent too long trying to construct circuits for this request
2025-05-02T10:33:38Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 2 times, but all attempts failed
Attempt 1: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
Attempt 2: Spent too long trying to construct circuits for this request
2025-05-02T10:33:38Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 2 times, but all attempts failed
Attempt 1: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
Attempt 2: Spent too long trying to construct circuits for this request
2025-05-02T10:33:47Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:33:57Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:34:11Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:34:17Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:34:27Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:34:37Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:34:41Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:34:47Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:34:57Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:35:07Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:35:12Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:35:17Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:35:17Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:35:27Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:35:37Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:35:47Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:35:47Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:35:57Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:36:07Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
^C2025-05-02T10:36:08Z  INFO tor_hsservice::ipt_mgr: HS service name-redacted: terminating due to shutdown signal

real    33m43.610s
user    5m33.641s
sys     0m11.177s
$ # Relaunch arti without changing anything, cause why not?
$ time arti proxy
   Compiling tor-circmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-circmgr)
   Compiling tor-dirclient v0.30.0 (/home/name-redacted/oss/arti/crates/tor-dirclient)
   Compiling tor-hsservice v0.30.0 (/home/name-redacted/oss/arti/crates/tor-hsservice)
   Compiling tor-hsclient v0.30.0 (/home/name-redacted/oss/arti/crates/tor-hsclient)
   Compiling tor-dirmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-dirmgr)
   Compiling arti-client v0.30.0 (/home/name-redacted/oss/arti/crates/arti-client)
   Compiling tor-hsrproxy v0.30.0 (/home/name-redacted/oss/arti/crates/tor-hsrproxy)
   Compiling arti-rpcserver v0.30.0 (/home/name-redacted/oss/arti/crates/arti-rpcserver)
   Compiling arti v1.4.3 (/home/name-redacted/oss/arti/crates/arti)
    Finished `quicktest` profile [optimized] target(s) in 47.62s
     Running `target/quicktest/arti proxy`
2025-05-02T10:40:33Z  INFO arti::subcommands::proxy: Starting Arti 1.4.3 in SOCKS proxy mode on localhost port 9150 ...
2025-05-02T10:40:33Z  INFO arti_client::client: Using keystore from "/home/name-redacted/.local/share/arti/keystore"
2025-05-02T10:40:33Z  INFO tor_hsservice: Using existing identity for service name-redacted: [scrubbed]
2025-05-02T10:40:33Z  INFO tor_hsservice: Launching onion service nickname=name-redacted
2025-05-02T10:40:34Z  INFO arti::reload_cfg: Successfully reloaded configuration.
2025-05-02T10:40:34Z  INFO tor_dirmgr: Marked consensus usable.
2025-05-02T10:40:34Z  INFO tor_dirmgr: Loaded a good directory from cache.
2025-05-02T10:40:34Z  INFO arti::subcommands::proxy: Sufficiently bootstrapped; system SOCKS now functional.
2025-05-02T10:40:34Z  INFO arti::socks: Listening on [::1]:9150.
2025-05-02T10:40:34Z  INFO arti::socks: Listening on 127.0.0.1:9150.
2025-05-02T10:40:34Z  INFO tor_dirmgr: Marked consensus usable.
2025-05-02T10:40:34Z  INFO tor_dirmgr: Directory is complete. attempt=1
2025-05-02T10:40:36Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:40:36Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:37Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:37Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:38Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:39Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:39Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:39Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:40Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:40Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:40:40Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:40:40Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:40:40Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit took too long to build
Attempt 2: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:40:40Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:40:40Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Circuit took too long to build
Attempt 2: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:40:40Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:42Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:43Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:43Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:44Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:40:44Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:45Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:47Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:50Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:51Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:40:51Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
^C2025-05-02T10:40:54Z  INFO tor_hsservice::ipt_mgr: HS service name-redacted: terminating due to shutdown signal

real    1m8.923s
user    4m32.783s
sys     0m9.330s
$ # "Fix" the bad network
$ git stash
Saved working directory and index state WIP on 1951: 2cc1debe1 Merge branch 'revert-workaround' into 'main'
$ # Run arti again, this time in normal conditions
$ time arti proxy
   Compiling tor-proto v0.30.0 (/home/name-redacted/oss/arti/crates/tor-proto)
   Compiling tor-chanmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-chanmgr)
   Compiling tor-guardmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-guardmgr)
   Compiling tor-ptmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-ptmgr)
   Compiling tor-circmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-circmgr)
   Compiling tor-dirclient v0.30.0 (/home/name-redacted/oss/arti/crates/tor-dirclient)
   Compiling tor-hsservice v0.30.0 (/home/name-redacted/oss/arti/crates/tor-hsservice)
   Compiling tor-hsclient v0.30.0 (/home/name-redacted/oss/arti/crates/tor-hsclient)
   Compiling tor-dirmgr v0.30.0 (/home/name-redacted/oss/arti/crates/tor-dirmgr)
   Compiling arti-client v0.30.0 (/home/name-redacted/oss/arti/crates/arti-client)
   Compiling tor-hsrproxy v0.30.0 (/home/name-redacted/oss/arti/crates/tor-hsrproxy)
   Compiling arti-rpcserver v0.30.0 (/home/name-redacted/oss/arti/crates/arti-rpcserver)
   Compiling arti v1.4.3 (/home/name-redacted/oss/arti/crates/arti)
    Finished `quicktest` profile [optimized] target(s) in 53.57s
     Running `target/quicktest/arti proxy`
2025-05-02T10:42:33Z  INFO arti::subcommands::proxy: Starting Arti 1.4.3 in SOCKS proxy mode on localhost port 9150 ...
2025-05-02T10:42:33Z  INFO arti_client::client: Using keystore from "/home/name-redacted/.local/share/arti/keystore"
2025-05-02T10:42:33Z  INFO tor_hsservice: Using existing identity for service name-redacted: [scrubbed]
2025-05-02T10:42:33Z  INFO tor_hsservice: Launching onion service nickname=name-redacted
2025-05-02T10:42:34Z  INFO tor_dirmgr: Marked consensus usable.
2025-05-02T10:42:34Z  INFO tor_dirmgr: Loaded a good directory from cache.
2025-05-02T10:42:34Z  INFO arti::subcommands::proxy: Sufficiently bootstrapped; system SOCKS now functional.
2025-05-02T10:42:34Z  INFO arti::socks: Listening on [::1]:9150.
2025-05-02T10:42:34Z  INFO arti::socks: Listening on 127.0.0.1:9150.
2025-05-02T10:42:34Z  INFO tor_dirmgr: Marked consensus usable.
2025-05-02T10:42:34Z  INFO tor_dirmgr: Directory is complete. attempt=1
2025-05-02T10:42:34Z  INFO arti::reload_cfg: Successfully reloaded configuration.
2025-05-02T10:42:44Z  WARN tor_guardmgr::guard: Could not connect to guard [scrubbed]. We'll retry later, and let you know if it succeeds.
2025-05-02T10:42:44Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:42:54Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:42:54Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:42:54Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:42:56Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:42:57Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:42:58Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:42:59Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:42:59Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:04Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:43:05Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:05Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:07Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:07Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:14Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:43:18Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:21Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:23Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:24Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:43:28Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:32Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:34Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:43:34Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:43:34Z  WARN tor_circmgr::mgr: Request failed
2025-05-02T10:43:34Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Problem opening a channel to [scrubbed]: Channel for [scrubbed] timed out
Attempt 2: Circuit we were waiting for failed to complete: Problem opening a channel to [scrubbed]: Channel for [scrubbed] timed out
Attempt 3: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:43:34Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 4 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Problem opening a channel to [scrubbed]: Channel for [scrubbed] timed out
Attempt 2: Circuit we were waiting for failed to complete: Problem opening a channel to [scrubbed]: Channel for [scrubbed] timed out
Attempt 3: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
Attempt 4: Spent too long trying to construct circuits for this request
2025-05-02T10:43:34Z  WARN tor_circmgr: Failed to build preemptive circuit [scrubbed]: error: Tried to find or build a circuit 3 times, but all attempts failed
Attempt 1: Circuit we were waiting for failed to complete: Problem opening a channel to [scrubbed]: Channel for [scrubbed] timed out
Attempt 2: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
Attempt 3: Spent too long trying to construct circuits for this request
2025-05-02T10:43:34Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:43:44Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:44Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:43:48Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:49Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:54Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:43:54Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:44:00Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:44:01Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:44:04Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:44:14Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:44:14Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:44:14Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:44:20Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
2025-05-02T10:44:24Z  WARN tor_circmgr: Problem launching a timeout testing circuit: error: Unable to select a guard relay: No usable guards. Rejected 60/60 as down, then 0/0 as pending, then 0/0 as unsuitable to purpose, then 0/0 with filter.
2025-05-02T10:44:26Z  WARN tor_circmgr::hspool: Too many preemptive onion service circuits failed; waiting a while.
^C2025-05-02T10:44:27Z  INFO tor_hsservice::ipt_mgr: HS service name-redacted: terminating due to shutdown signal

real    2m47.045s
user    5m20.769s
sys     0m10.764s
$ # Still failing to select a guard(s)

Possible fixes:

Doing something of the sort:

Possible fix
diff --git a/crates/tor-circmgr/src/impls.rs b/crates/tor-circmgr/src/impls.rs
index 7828abde1..de11eb70c 100644
--- a/crates/tor-circmgr/src/impls.rs
+++ b/crates/tor-circmgr/src/impls.rs
@@ -126,6 +126,9 @@ impl<R: Runtime> crate::mgr::AbstractCircBuilder<R> for crate::build::CircuitBui

         guard_status.pending(GuardStatus::AttemptAbandoned);

+        const MAX_ATTEMPT: usize = 3;
+        for attempt in 1..=MAX_ATTEMPT {
+
         // TODO: We may want to lower the logic for handling
         // guard_status and guard_usable into build.rs, so that they
         // can be handled correctly on user-selected paths as well.
@@ -157,17 +160,32 @@ impl<R: Runtime> crate::mgr::AbstractCircBuilder<R> for crate::build::CircuitBui
                         return Err(internal!("Guard usability status cancelled").into());
                     }
                 }
-                Ok((final_spec, circuit))
+                return Ok((final_spec, circuit));
             }
+            Err(e @ Error::CircTimeout(uid)) if attempt != MAX_ATTEMPT => {
+                /* how do we check this? */
+                if experiencing_enough_bad_or_slow_network_such_that_ntor_handshake_cant_not_take_place_within_timeouts() {
+                    guard_status.pending(GuardStatus::Failure); // <------------+
+                    // An apt GuardStatus from the two ->-----------------------+
+                    guard_status.pending(GuardStatus::AttemptAbandoned); // <---+
+                    guard_status.commit();
+                    return Err(e);
+                } else {
+                    // Network is/got good. Suspicious, but lets try again?
+                    continue;
+                }
+            },
             Err(e) => {
                 // The attempt failed; the builder should have set the
                 // pending status on the guard to some value which will
                 // tell the guard manager whether to blame the guard or not.
                 guard_status.commit();

-                Err(e)
+                return Err(e);
             }
         }
+
+        }
     }

     fn launch_parallelism(&self, spec: &TargetCircUsage) -> usize {

If the above is implemented, CircuitBuilder::build_owned could/should also return, in case of circuit timeouts, an Err((CircTimeout, <ClientCirc as Buildable>)), from down the function call stack:

Function Call Stack
CircuitBuilder::build_owned
Builder::build_owned
Builder::build_notimeout

This would mean the <ClientCirc as Buildable> can be reused for the next ExtendNtor*, and there's no need for multiple Ntor Handshakes to the 1st Hop, inside Builder::build_notimeout.