NG02200 Angular Origin: On your device Last updated 15 Oct 2026

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.

Exact message you may see 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
Seen on: Angular TypeScript

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 | async on an Observable
  • Property typed any that sometimes holds an object
  • Looping over an object with *ngFor instead of the keyvalue pipe
  • Paged responses (results, data) not unwrapped

⚡ Quick fix

  1. Bind to the array: *ngFor="let i of resp.items"
  2. Use | async on Observables
  3. Use keyvalue pipe to iterate object entries

Detailed fix by platform

Angular

  1. @for (kv of config | keyvalue; track kv.key) { {{ kv.key }}: {{ kv.value }} }
  2. Map responses in the service: map(r => r.items)

Code examples

Unwrap the response

typescript
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

  1. Shape — Array or object in the response?
  2. Observable — Missing async?
  3. 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:

Where this error sits

Origin: On your device. Errors that are often confused with or caused by this one (click to open):

NG02100 — Angular: NG02100: InvalidPipeArgument: '[object Object]' for pipe 'AsyncPipe' (Angular)NG02100NG0301 — Angular: NG0301: Export of name 'x' not found! (template variable #x="exportAs") (Angular)NG0301NG0955 — Angular: NG0955: The provided track expression resulted in duplicated keys for a given collection (@for) (Angular)NG0955NG8001 — Angular: NG8001: 'app-item' is not a known element — verify that it is included in the component's imports (Angular)NG8001NG8002 — Angular: NG8002: Can't bind to 'ngModel' since it isn't a known property of 'input' (Angular)NG8002NG8003 — Angular: NG8003: No directive found with exportAs 'ngForm' (template reference variable) (Angular)NG8003NG8004 — Angular: NG8004: No pipe found with name 'async' / 'date' / 'translate' — pipe not imported (Angular)NG8004NG8103 — Angular: NG8103: The *ngIf directive was used, but neither the NgIf directive nor the CommonModule was imported (Angular)NG8103NG02200

Explore the map of this error Full error map →

🧠 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.