diff --git a/src/signer/nip46_client.rs b/src/signer/nip46_client.rs index 94e011f..198b3c4 100644 --- a/src/signer/nip46_client.rs +++ b/src/signer/nip46_client.rs @@ -2333,8 +2333,15 @@ impl Nip46ClientSigner { let app = app.lock().await; crate::relays::enabled_urls(&app.settings) }; + // Outer budget must exceed the inner worst case: + // fetch_profile_metadata waits up to 10s for the pool to + // connect (relay.nostr.band is a known handshake-hanger and + // sits in the user's relay list), then fetches per relay. + // A 10s outer timeout killed the task during the connect + // wait — live Sep 25: nos.lol held the account's kind-0 + // ('web5osint') but the profile kept the seed label. let meta = match tokio::time::timeout( - Duration::from_secs(10), + Duration::from_secs(30), tokio::task::spawn_blocking(move || { profiles::fetch_profile_metadata(&identity, &relays_for_meta) }),