Rust spawn_blocking panics when async-std and tokio mix
A Rust binary that transitively depends on both async-std and tokio, or a codebase mid-migration between runtimes.
tokio::task::spawn_blocking panics with 'no reactor running' when called from a future polled by an async-std runtime. The types compile fine; the panic only shows at runtime and only in the specific code path that hits a spawn_blocking call — often deep inside a library crate (reqwest's blocking shim, tokio-based DB drivers). RUST_BACKTRACE=1 shows tokio::runtime::enter::Context at the panic frame, which is the tell. Fix: standardize the runtime at the binary root (#[tokio::main] OR #[async_std::main], never both).
When picking up a dep that uses tokio internals, audit which async runtime the binary actually runs. A mixed binary is a latent panic waiting for a specific request to hit the wrong library path.