Rust: error[E0384]: cannot assign twice to immutable variable `x`
You reassigned a variable declared without mut.
error[E0384]: cannot assign twice to immutable variable `x`cannot assign twice to immutable variableE0384 help: consider making this binding mutable: `mut x`cannot assign to `x`, as it is not declared as mutablecannot assign to immutable argument Meaning
Declare it let mut x = ... if reassignment is intended, or shadow it (let x = x + 1;) which creates a new binding. Function parameters are immutable too (mut param). For loops with counters use let mut.
Common causes
- Missing
muton the variable - Reassigning function parameters
- Loop counter immutable
- Assigning in a closure without
mutcapture - Struct field assignment through immutable binding
⚡ Quick fix
let mut x = 5;- Shadow:
let x = x + 1; fn f(mut x: i32)for parameters
Detailed fix by platform
Rust
let mut count = 0; count += 1;
How to diagnose
- Binding — mut?
- Intent — Reassign or shadow?
- Param — mut?
🔧 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