buzz-pair: panics on wss:// relays — rustls CryptoProvider never installed
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 92/100
Research direction
Start with crates/buzz-pairing-cli/Cargo.toml and the main entry point, then compare rustls setup in crates/buzz-cli/src/lib.rs and its dependency comment. Verify the provider configuration matches the sibling crates, then run the documented source and target commands against a wss:// relay and confirm the handshake completes without a panic.
Written by the indexing model from the issue text.
Description
buzz-pair panics on any wss:// relay because no rustls CryptoProvider is installed. Since the subcommand defaults to wss://relay.damus.io, the documented quick-start fails out of the box.
Repro
cargo build --release -p buzz-pairing-cli
./target/release/buzz-pair source --relay wss://relay.damus.io
Actual
The QR URI prints, then:
Waiting for target to scan QR code...
thread 'main' panicked at rustls-0.23.42/src/crypto/mod.rs:249:14:
Could not automatically determine the process-level CryptoProvider from Rustls crate features.
Call CryptoProvider::install_default() before this point to select a provider manually, or make
sure exactly one of the 'aws-lc-rs' and 'ring' features is enabled.
ws:// URLs are unaffected, so it reproduces only against TLS relays — i.e. every real one.
Cause
The sibling binaries install the provider explicitly; buzz-pairing-cli does not. Compare crates/buzz-cli/src/lib.rs:
let _ = rustls::crypto::ring::default_provider().install_default();
and the comment on buzz-cli's own rustls dependency explaining why a direct dep with the ring feature is needed (feature unification across the workspace otherwise leaves rustls unable to pick a provider).
Fix
Same two changes as the sibling crates — add to crates/buzz-pairing-cli/Cargo.toml:
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
and at the top of main():
let _ = rustls::crypto::ring::default_provider().install_default();
Verified locally: after this, source/target complete a full handshake over wss://.
Environment
- Commit
4cd82f5(main, 2026-09-13) - macOS 26.6.2, arm64, toolchain via hermit
- Dominant language
- Rust
- Stars
- 33.7k
- Forks
- 4.4k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 189
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from block/buzz
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
block/buzz#7880 · 2 comments · 2 reactions ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
block/buzz#7824 · 1 reaction ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
software-challenge/player_rust#22 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
foundry-rs/foundry#17175 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
state:triage-needed
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
github/copilot-sdk#2793 ·
Maintainers usually reply within 1 day