Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

buzz-pair: panics on wss:// relays — rustls CryptoProvider never installed

Open Beginner friendly
#7,927 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
92/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
rust
Domain
cli, security

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from block/buzz

All issues in block/buzz

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.