tinyhumansai/openhuman · error
reqwest 0.12 TLS client must be available
Error message
reqwest 0.12 TLS client must be available
What it means
Panic payload on reqwest::blocking::Client::builder().build() in the Sentry HTTP transport: after applying invalid-cert acceptance and HTTP/HTTPS proxy options, the blocking client (reqwest 0.12) failed to construct — typically a TLS backend initialization failure or an unusable proxy configuration. The transport cannot ship events without it, so the process panics at setup.
Source
Thrown at src/core/sentry_transport.rs:45
let mut builder = reqwest::blocking::Client::builder();
if options.accept_invalid_certs {
builder = builder.danger_accept_invalid_certs(true);
}
if let Some(url) = options.http_proxy.as_ref() {
match reqwest::Proxy::http(url.as_ref()) {
Ok(proxy) => builder = builder.proxy(proxy),
Err(error) => sentry_debug!("invalid HTTP proxy: {error:?}"),
}
}
if let Some(url) = options.https_proxy.as_ref() {
match reqwest::Proxy::https(url.as_ref()) {
Ok(proxy) => builder = builder.proxy(proxy),
Err(error) => sentry_debug!("invalid HTTPS proxy: {error:?}"),
}
}
let client = builder
.build()
.expect("reqwest 0.12 TLS client must be available");
let dsn = options
.dsn
.as_ref()
.expect("Sentry transport requires a DSN");
let auth = dsn.to_auth(Some(&options.user_agent)).to_string();
let url = dsn.envelope_api_url().to_string();
let (sender, receiver) = mpsc::sync_channel(30);
let shutdown = Arc::new(AtomicBool::new(false));
let worker_shutdown = shutdown.clone();
let handle = std::thread::Builder::new()
.name("sentry-transport".into())
.spawn(move || {
let mut rate_limiter = RateLimiter::new();
for task in receiver {
if worker_shutdown.load(Ordering::SeqCst) {
return;
}View on GitHub (pinned to 7491200858)
Solutions
- Check the proxy URLs in the Sentry transport options for validity (scheme, host, port)
- Verify TLS backend availability for the platform build (rustls/native-tls feature set)
- Fall back to the default (no-curl, no-proxy) transport if a custom transport cannot be built
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at src/core/sentry_transport.rs:45 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- SSL/TLS and certificate errors — how TLS handshakes and certificate validation fail.
AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17).
Data as JSON: /api/errors/8ae27a988479d79c.
Report an issue: GitHub.