TypeError: x is not iterable
for…of, spread or destructuring was used on something that isn’t an array/iterable.
Seen on:
JavaScript
Meaning
Plain objects, undefined and numbers aren’t iterable. Common when an API returns an object instead of an array, or data hasn’t loaded.
Common causes
- Spreading/looping undefined (data not loaded)
- Iterating a plain object instead of Object.entries()
- Destructuring a hook that returns an object as an array
- API shape changed
⚡ Quick fix
- Default to []: for (const x of items ?? [])
- Use Object.entries/keys/values for objects
- Log the value to confirm its type
Detailed fix by platform
JavaScript
for (const [key, value] of Object.entries(config)) { … }
How to diagnose
- Value — What is it actually?
- Source — API, props or state?
🧠 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.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026