Angular: NG02200: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays
*ngFor (or @for) was given an object, null shape or a non-iterable instead of an array.
Cannot find a differ supporting objectNgFor only supports binding to Iterables such as ArraysCannot find a differ supporting object '[object Object]' of type 'object'NgFor only supports binding to Iterables Meaning
Typical when an API returns { data: [...] } and the template loops over the wrapper object, or a service returns an Observable and you forgot | async. Loop over the array property, or convert an object with keyvalue / Object.values.
Common causes
- API wraps the array in an object (
{ items: [...] }) and the template loops the object - Forgot
| asyncon an Observable - Property typed
anythat sometimes holds an object - Looping over an object with
*ngForinstead of thekeyvaluepipe - Paged responses (
results,data) not unwrapped
⚡ Quick fix
- Bind to the array:
*ngFor="let i of resp.items" - Use
| asyncon Observables - Use
keyvaluepipe to iterate object entries
Detailed fix by platform
Angular
@for (kv of config | keyvalue; track kv.key) { {{ kv.key }}: {{ kv.value }} }- Map responses in the service:
map(r => r.items)
Code examples
Unwrap the response
items$ = this.http.get<{ items: Item[] }>('/api/items').pipe(map(r => r.items));
// template: @for (i of items$ | async; track i.id) { ... }How to diagnose
- Shape — Array or object in the response?
- Observable — Missing async?
- Source — Console.log the bound value
🔧 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
Most viewed in Angular
- NullInjectorError Angular: NullInjectorError: No provider for X!
- NG0100 Angular: NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked
- NullInjectorError: No provider for HttpClient! Angular: NullInjectorError: No provider for HttpClient! — provideHttpClient() missing
Other ways to find it
Where this error sits
Origin: On your device. 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 15 Oct 2026