From fc01a002fd1f4087db4c5fc60fe6de48ad63f35e Mon Sep 17 00:00:00 2001 From: Tom Grushka <89836285+tgrushka@users.noreply.github.com> Date: Tue, 7 Oct 2025 14:10:09 -0600 Subject: [PATCH] fix dx serve https=true error: 'no process-level CryptoProvider available -- call CryptoProvider::install_default() before this point' (#4736) --- packages/cli/src/serve/server.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/serve/server.rs b/packages/cli/src/serve/server.rs index 4886fd4f2..a795f3f51 100644 --- a/packages/cli/src/serve/server.rs +++ b/packages/cli/src/serve/server.rs @@ -26,6 +26,7 @@ use futures_util::{ StreamExt, }; use hyper::HeaderMap; +use rustls::crypto::{aws_lc_rs::default_provider, CryptoProvider}; use serde::{Deserialize, Serialize}; use std::{ convert::Infallible, @@ -412,7 +413,10 @@ async fn devserver_mainloop( return Ok(()); } - // If we're using rustls, we need to get the cert/key paths and then set up rustls + // If we're using rustls, we need to install the provider, get the cert/key paths, and then set up rustls + if let Err(provider) = CryptoProvider::install_default(default_provider()) { + bail!("Failed to install default CryptoProvider: {provider:?}"); + } let (cert_path, key_path) = get_rustls(&https_cfg).await?; let rustls = axum_server::tls_rustls::RustlsConfig::from_pem_file(cert_path, key_path).await?;