Rust: error[E0133]: call to unsafe function `foo` is unsafe and requires unsafe function or block
You called an unsafe function (or dereferenced a raw pointer / accessed a static mut) outside unsafe.
error[E0133]: call to unsafe function `foo` is unsafe and requires unsafe function or blockdereference of raw pointer is unsafe and requires unsafe blockuse of mutable static is unsafe and requires unsafe function or blockE0133 call to unsafe function requires unsafe blockerror[E0133]: use of mutable static Meaning
Wrap in unsafe { ... } only after verifying the safety contract in the docs, or use a safe wrapper. For static mut prefer AtomicUsize, Mutex, OnceLock. In edition 2024 unsafe_op_in_unsafe_fn requires unsafe blocks inside unsafe fns too.
Common causes
- FFI function call without unsafe block
- Raw pointer dereference
static mutaccess- Calling
get_unchecked,transmute, etc. - Edition 2024 requiring blocks inside unsafe fns
⚡ Quick fix
- Wrap the call in
unsafe { }with a// SAFETY:comment - Replace
static mutwith atomics/Mutex - Use safe abstractions (bindgen wrappers, std APIs)
Detailed fix by platform
Rust
- rust
// SAFETY: ptr is valid and aligned per the caller contract unsafe { *ptr }
How to diagnose
- Function — Unsafe contract?
- Alternative — Safe API?
- static mut — Replace?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- Blocking waiting for file lock on package cache / build directory Cargo: Blocking waiting for file lock on package cache / on build directory
- cargo: failed to get from registry (spurious network error) Cargo: warning: spurious network error (2 tries remaining): [35] SSL connect error / error: failed to download from `https://index.crates.io/...`
- cargo: failed to select a version for the requirement Cargo: error: failed to select a version for the requirement `serde = "^2.0"` — candidate versions found which didn't match: 1.0.197
Most viewed in Rust
Other ways to find it
Where this error sits
Origin: Application & API. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 5 Nov 2026