Meta Catalog Items Not Showing? Fix Errors
Catalog items not showing in your ads or Shop? Read the Meta Commerce Manager Diagnostics tab and fix the feed errors that block delivery.
Updated June 2027 · Likit Sae Lee, CTO

If your catalog items will not show in ads or the Shop, open Commerce Manager, select the catalog, and read the Diagnostics or Issues tab: red errors block delivery (a missing price, availability, image, or a failed feed upload) while yellow warnings only dent quality. Fix the flagged field or data source, re-run the feed (a scheduled feed can refresh as often as once per hour), and the item flips from Rejected or Out of stock back to Active. The most common blockers are an inaccessible feed URL, a missing required field, a rejected image under the 500 x 500 pixel minimum, and a currency or availability value Meta cannot read. Work the list top down, because one broken data source usually explains dozens of item-level errors at once.
Your products are live on your store, but the ad set reports nothing to deliver, or the Shop tab shows a fraction of your catalog. The answer almost always sits in one place you have not opened: the Diagnostics or Issues tab in Commerce Manager, where Meta lists every item it could not accept and the exact reason it stopped. This guide reads that tab with you, decodes the common errors (failed feed uploads, missing required fields, rejected images, currency and format mismatches, and out-of-stock removal), and walks the fix so items flip back to Active.
Start where the answers are: the Diagnostics and Issues tab
When a catalog ad reports nothing to deliver, or your Shop shows twelve products instead of two hundred, the instinct is to blame the ad set, the audience, or the budget. It is almost never those. An item can only appear in an ad or a Shop when its status is Active, and Commerce Manager keeps a running list of every item that is not, along with the exact reason. That list lives in the Issues tab (labelled Diagnostics in some accounts), and reading it is the whole job.
Open Commerce Manager, select the catalog, then open the Catalog section and click Issues. Meta groups what it finds into two buckets, and knowing which bucket a problem sits in decides how you fix it. Catalog issues are item-level: a single product is missing a price, has a broken image, or tripped a commerce policy. Data sources issues are structural: the feed itself failed to upload, a connected store platform stopped syncing, or the pixel feeding your catalog went quiet. The distinction matters because one broken data source will spray hundreds of identical item-level errors across the catalog, and fixing the source clears all of them at once. Always read the data-source problems first.
Every issue carries a severity, and the colour tells you the priority. Errors are red and blocking: the item did not upload, or it uploaded but is not eligible to show anywhere until you resolve the problem. Warnings are yellow and non-blocking: the item still serves, but Meta is flagging a quality gap that can quietly suppress reach. Clear every red error to restore delivery, then work the yellow warnings to improve how far each item travels. Next to most issues sits a Download report button that exports a CSV sample of the affected items, which is the fastest way to hand a precise, reproducible list to whoever maintains the feed.
Context is worth keeping in mind while you work: with 5.24 billion social media user identities worldwide at the start of 2025, per DataReportal, and Meta reporting that its average price per ad rose about 9% across full-year 2025, an item stuck in Rejected is not a cosmetic problem. It is inventory you are paying auction prices to reach, sitting invisible.
When the whole feed fails to upload
A failed upload is the loudest error because it takes everything with it: if Meta cannot fetch or parse the file, nothing inside it updated, and the catalog silently keeps serving stale data or none at all. The tab will say the upload failed or could not be processed. Work through the causes in order, cheapest check first.
Start with reachability. The single most common cause is a feed URL that Meta cannot open. Paste the URL into a private or incognito browser window and confirm it downloads the file straight away without asking for a login. If it prompts for a password, sits behind a company VPN, or 404s, Meta's fetcher hits the same wall. A public URL, or Meta's own scheduled-fetch credentials on a protected feed, is the fix.
If the file loads by hand, look at the format. Catalogs accept CSV, TSV, and XML (RSS or ATOM) files only. A spreadsheet saved as XLSX, a JSON export, or a PDF will not parse. Save CSV and TSV as UTF-8 to avoid mangled characters in titles and descriptions, and make sure the very first row holds the column headers, spelled the way Meta expects (id, title, availability, price, image_link, and so on). A header the parser does not recognise means that whole column is ignored, which then shows up downstream as a wave of missing-field errors on items that actually have the data.
A feed that used to work and suddenly fails usually points at one of three things: the source system changed the file structure (a renamed column, a new delimiter), the file grew large enough to time out mid-fetch, or a scheduled fetch is pointing at a URL that moved. For scheduled feeds, remember the cadence: Meta can auto-refresh a URL feed as often as once per hour, and the guidance is to refresh at least once every 24 hours so stock and price stay current. After you fix the source, do not wait for the next scheduled run. Trigger it by hand with Fetch now (for a URL feed) or Upload (for a manual file) and watch the result.
One more upload pattern trips people up: a partial success. The file uploads, but the summary reports that some rows were skipped, so a chunk of your range never made it into the catalog and shows as missing rather than rejected. That is almost always a row-level parse problem, an unescaped comma inside a CSV field, a line break sitting in the middle of a description, or a stray quotation mark that throws off column alignment for every row after it. The Download report on the upload summary lists the exact rows that failed, so open the source file at those line numbers, escape or quote the offending characters, and re-run. Treat an upload as clean only when the processed-item count matches the number of rows you actually sent.
Missing or invalid required fields
Once the file uploads, the next tier of errors is item-level, and the biggest category is a required field that is missing, empty, or malformed. Meta will not accept an item that lacks the data it needs to display and match. Here is the required set and what each error is really telling you.
| Field | Requirement | What the error usually means |
|---|---|---|
| id | Unique, stable, up to 100 characters | The id changed between uploads (creates duplicates) or repeats across two items |
| title | Text, up to 200 characters | Title is blank, or so long it is truncated in placements |
| description | Text, up to 9,999 characters | Description is empty or contains raw HTML the parser rejects |
| availability | A recognised value (in stock, out of stock, preorder) | The column holds a value Meta does not recognise, so it defaults the item out |
| condition | new, refurbished, or used | Missing on a catalog where condition is required |
| price | A number plus a 3-letter ISO 4217 code | Price is 0, blank, or formatted with a symbol Meta cannot read |
| link | A working product-page URL | The URL 404s, redirects, or is not the live product page |
| image_link | A public image URL meeting the image spec | The link is broken, or the image fails the size or format rules |
The id field causes the most avoidable damage. It must stay identical for the same product across every feed update. If your source regenerates ids (a new export assigns fresh ones), Meta treats each upload as a new set of products, the old ones age out, and the dynamic product ads and pixel matching that relies on stable ids breaks. Lock the id to a permanent SKU, never to a row number or a timestamp.
Brand and GTIN sit in a softer tier. Brand is effectively required for most retail catalogs and for reliable product matching, so a missing brand often reads as a blocking error in a retail catalog and a warning elsewhere. A GTIN (a UPC, EAN, or ISBN) is not mandatory on every product, so a missing one typically appears as a yellow warning, not a red error. That is the line the scope of this guide respects: improving titles, enriching descriptions, and adding GTINs to lift quality is proactive feed optimisation. Here you are only clearing what blocks delivery, so treat the red required-field errors as the work and leave the yellow enrichment warnings for a separate pass.
Rejected images and why items get flagged
Images are their own error category because the rules are concrete and easy to trip. Meta requires each product image to be at least 500 x 500 pixels, and recommends 1024 x 1024 for clean rendering across placements. The file must be under 8 MB, in JPEG or PNG, and served over a link that resolves publicly. Miss any of those and the item is flagged or rejected.
Walk the common rejections. A broken or expired image_link is the frequent culprit: the URL returns a 404, the file moved, or it sits behind a login, so Meta's crawler sees nothing. A placeholder graphic ("image coming soon", a grey box) trips content checks. An image with promotional text, price stickers, watermarks, or a busy border baked in can be rejected because catalog images are meant to show the product cleanly, and heavy overlaid text is exactly what the review looks for. A picture below the 500 x 500 minimum is rejected outright on size.
The fix is always the same shape: point image_link at a clean, high-resolution image on a publicly reachable URL, in the right format and under the size cap, then re-run the feed so the item is re-reviewed. If dozens of items fail on images at once, the problem is upstream (your store is exporting thumbnail URLs instead of full-size ones, or the image CDN requires authentication), so fix the export rather than editing items one by one.
Currency, price, and format mismatches
Price and currency errors are subtle because the number looks fine to a human and wrong to a parser. Meta expects price as a number, then a space, then a 3-letter ISO 4217 currency code, for example 19.99 USD. Use a period for the decimal point, never a comma, and do not include a currency symbol. A field that reads $19.99, 19,99, or 19.99$ fails or imports as the wrong value. A price of 0 or a blank cell is treated as missing and blocks the item.
Currency has a second trap that hides outside the feed. The currency in your feed has to line up with the currency the catalog and the ad account expect. If your feed sends one currency and the ad account bills in another, prices display wrong or the item will not serve where you expect. Pick the selling currency deliberately and keep the feed, the catalog, and the ad account consistent, because currency and account time zone are set at creation and are painful to change later.
Availability is the other format field people get wrong. The value has to be one Meta recognises: in stock, out of stock, or preorder are the everyday set, with available for order and discontinued also accepted. A creative value like yes, available, true, or 10 units is not understood, so Meta falls back to treating the item as unavailable, and it drops out of ads. Map your store's stock states onto Meta's exact strings in the feed, and the phantom out-of-stock errors disappear.
Sensitivity to format extends to condition (only new, refurbished, or used) and to any field with a fixed vocabulary. When an item is flagged as invalid but the data clearly exists, suspect the value, not the presence: the column is populated, but with a string Meta cannot parse.
Out of stock: why items vanish, and the 56-day rule
Out-of-stock behaviour surprises people because it is not an error at all, it is Meta doing exactly what the feed told it to. When an item's availability is out of stock, Meta hides it from ads so you do not pay to send shoppers to something they cannot buy. That is why an item can be perfectly valid, throw no red error, and still refuse to deliver. The status, not the Issues tab, is the tell.
Ads and Shops treat this differently, and the difference is worth holding in your head. An out-of-stock item is hidden from ads, but on Facebook and Instagram Shops it still appears, marked as sold out, so browsers can still find it and see it is temporarily unavailable. Meta keeps it visible in the Shop for up to 56 days. Past that window, an item that has stayed out of stock is removed from the Shop entirely and has to be re-added later, which also means it loses the continuity that helps it later.
Two fixes cover almost every case. When an item is wrongly marked out of stock while your store clearly has inventory, the answer is the availability field, not the ad: set it to in stock, and if your feed carries a quantity, make sure that value is 1 or higher, then re-run the feed. When the culprit is a broken sync (a store platform whose stock is not mapping to the availability column), fix the mapping at the source so real inventory drives the value going forward. And when you genuinely go out of stock, resist deleting the item. Marking it out of stock keeps its id, its history, and its matching intact, so when the product returns you flip availability back to in stock and delivery resumes on its own, no rebuild required.
Re-run the feed and confirm items become Active
Fixing the data is only half the loop. Meta does not act on a change until it re-reads the source, and an item is not truly fixed until its status reads Active. Here is the sequence that closes the loop cleanly.
Re-run the source. In Commerce Manager, open Catalog, then Data sources, select the feed, and choose Upload for a manual file or Fetch now for a scheduled URL feed. Meta re-reads the file and re-reviews any item that changed. Item review is not always instant, so a large batch can take time to reprocess before its new status settles.
Then verify by counting, not by hope. Open the Items view and filter by status. A healthy catalog reads as a large Active count with a small or zero count in Rejected and Out of stock. Watch the numbers move rather than spot-checking one product.
Work a quick example. Say the catalog holds 500 items and the Items view shows 500 total but only 320 Active, with 140 flagged out of stock and 40 rejected. The Issues tab attributes the 40 rejections to broken image links and the 140 out-of-stock to an availability column that imported the word available instead of in stock. You correct the availability mapping at the source and repoint the image URLs, then Fetch now. After reprocessing, the Items view should read close to 500 Active, with the out-of-stock count reflecting only genuinely sold-out lines. If the Active count barely moved, the source did not actually change, so re-check that your edit saved and the feed pulled the new file rather than a cached one.
Finally, re-open the Issues tab and confirm the error count dropped. The tab is the scoreboard: fewer red errors after a re-run means the fix landed, and a number that did not budge means the change never reached Meta. Treat a re-run as complete only when the Issues count falls and the Active count rises to match.
| Status in Items view | What it means | Next action |
|---|---|---|
| Active | Eligible to show in ads and the Shop | Nothing, this is the goal |
| Rejected | Blocked by an error (image, policy, missing field) | Read the Issues tab reason, fix, re-run |
| Out of stock | Availability is out of stock, hidden from ads | Correct the availability value if wrong, re-run |
| Pending / In review | Uploaded, awaiting item review | Wait, then re-check after reprocessing |
A routine that keeps the catalog healthy
Catalog errors are rarely one-off. They cluster around the moments the source changes: a store re-platforming, a bulk price update, a seasonal restock, a new image CDN. So the durable fix is not a single cleanup, it is a short habit that catches problems while they are small.
Check the Issues tab on a schedule, not only when an ad stops spending. A weekly glance during steady periods, and a check the day after any big inventory or pricing change, catches a broken data source before it has quietly hidden half your range. Keep the feed refreshing on a sensible cadence: hourly for fast-moving stock and pricing, daily as a safe minimum for slower catalogs, so availability and price never drift far from reality. Fix at the source, not the symptom. Editing one item by hand in Commerce Manager clears one error, but the next feed run will overwrite it if the underlying export is still wrong, so trace a recurring error back to the store, the sync, or the export and fix it there.
Read severity as your queue. Red errors are lost delivery and come first, every time. Yellow warnings are next, and they belong to a different job: enriching titles, descriptions, images, and identifiers to lift quality is proactive optimisation you can batch when the blocking errors are clear. And keep the ids stable above all else, because a catalog whose ids stay constant survives re-platforming, feed swaps, and restocks without losing its history, while one that regenerates ids starts from zero every time. Read the tab, fix the source, re-run, and confirm Active. That loop turns a catalog from a recurring fire drill into a quiet, dependable base for every Facebook ad you run.
By the numbers
Frequently asked questions
Where do I find the catalog Diagnostics or Issues tab in Commerce Manager?
Open Commerce Manager, select the catalog you want to check, then open the Catalog section and click Issues (some accounts label it Diagnostics). You will see problems grouped into two buckets: Catalog issues, which are item-level problems like a missing required field or a policy violation, and Data sources issues, which are problems with a connected feed, partner platform, or pixel. Each issue carries a severity (error or warning) and a Download report button that exports a CSV sample of the affected items so you or your developer can work the list offline.
Why are my Facebook catalog products not showing in ads?
An item only serves in ads when its status is Active, so start in the Issues tab and find what pushed it out of that state. The usual causes are a missing or malformed required field (no price, no availability, a broken image_link), an image that failed review or fell below the 500 x 500 pixel minimum, a product URL that returns a 404 or redirect, an availability value Meta reads as out of stock, or a policy rejection on the title or description. Fix the flagged field, re-run the feed, and once the item shows Active it becomes eligible to deliver again.
My product feed failed to upload. What does that mean and how do I fix it?
A failed upload means Meta could not fetch or parse the file, so nothing in it updated. Check that the feed URL is publicly reachable (paste it into a private browser window: it should download, not ask for a login), that the file is CSV, TSV, or XML, that the character encoding is UTF-8, and that the column headers match Meta's expected field names. If the file loads fine by hand, the break is usually authentication (a password-protected URL), a server timeout on a very large file, or a header the parser does not recognise. Fix the source, then use Upload again or Fetch now to re-run it.
What is the difference between an error and a warning in the Issues tab?
Severity tells you what to fix first. Errors are marked in red and are blocking: the item did not upload or is not eligible to show in ads or the Shop until you resolve them, for example a missing price or a rejected image. Warnings are yellow and non-blocking: the item still shows, but Meta is flagging quality problems (a missing GTIN, a short description, a low-resolution image) that can hurt how well it performs. Clear every red error to restore delivery, then work the yellow warnings to improve reach.
What are the required fields for a Meta product feed?
Every item needs a unique and stable id, a title (up to 200 characters), a description (up to 9,999 characters), an availability value, a condition, a price (a number plus a 3-letter ISO 4217 currency code), a link to the product page, and an image_link. Brand is effectively required for most retail catalogs and for matching. A GTIN (UPC, EAN, or ISBN) is not mandatory for every product but is strongly recommended, and missing it usually shows as a warning rather than a blocking error.
Why does my product image keep getting rejected?
Image rejections come from a handful of concrete rules. The image must be at least 500 x 500 pixels (Meta recommends 1024 x 1024), under 8 MB, in JPEG or PNG, and served over a link that actually loads. Common failures are a broken or expired image_link, a placeholder or 'no image available' graphic, an image with promotional text or watermarks baked in, or a file behind a login. Replace the URL with a clean, high-resolution image that resolves publicly, then re-run the feed so the item is re-reviewed.
My items say out of stock but they are in stock. How do I fix it?
Meta hides out-of-stock items from ads, so an item wrongly marked out of stock disappears from delivery even though your store has inventory. The fix is the availability field, not the ad: set it to in stock (and, if you send a quantity, make it 1 or higher), then re-run the feed. If you connect a store platform, confirm the inventory sync is mapping your real stock to the availability column. Note that an item left out of stock for more than 56 days is removed from your Shop entirely and has to be re-added.
How do I re-run a feed and confirm items become Active?
In Commerce Manager, open Catalog, then Data sources, select the feed, and choose Upload (for a manual file) or Fetch now (for a scheduled URL feed). Meta re-reads the file, re-reviews changed items, and updates their status. Refresh the Items view and filter by status: your fixed products should move from Rejected or Out of stock to Active. Item review is not always instant, so give a large batch time to reprocess, then re-check the Issues tab to confirm the error count dropped.
Sources
- 1.Meta Business Help Center, How to Use the Issues Tab in Your Catalog (2026)
- 2.Meta Business Help Center, Troubleshoot Data Feed Errors in Your Catalog (2026)
- 3.Meta Business Help Center, Product Data Specifications for Catalogs in Commerce Manager (2026)
- 4.Meta Business Help Center, Product Image Specifications for Catalogs (2026)
- 5.Meta Business Help Center, About Scheduled Data Feed Uploads for Catalogs (2026)
- 6.Meta Business Help Center, Troubleshoot Items Not Showing in Your Shop or Ads (2026)
- 7.Meta Business Help Center, Catalog Eligibility Requirements for Shops (2026)
- 8.DataReportal, Digital 2025 Global Overview Report (2025)
- 9.Meta, Fourth Quarter and Full Year 2025 Results (2025)
Keep exploring
Turn ad research into winning ads
Research the ads that work, generate the creative on-brand, and launch to Meta, all in one tool.
7-day free trial · No credit card required
