> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.omegatheme.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Fix apporval issues on your products


When Google or Facebook rejects a product, Omega Feed shows you the exact error code, which attribute caused it, and what to change. This article covers:

1. **How Omega groups issues** — account-level problems vs. feed-level problems.
2. **The general fix** — open the product's final feed data and correct the value that was sent.
3. **The bulk fix** — change the mapping so every product is corrected at once.
4. **Error-code reference** — what each code means and exactly which field to fix.

![The Account status & Feed status panel on Homepage](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_fxhk83.png)

## How Omega groups your issues

Every error the channel returns is sorted into one of two tiers. The tier tells you where the fix lives — and fixing an account-level problem first often clears hundreds of product-level errors at once.

* **Account issues**— the connection or the channel account itself is blocked: an expired login, an unclaimed website, a suspended Merchant Center, a missing shipping policy. These affect **every** feed pushing through that account, and no product change will clear them.
* **Feed issues**— the data one feed sends for specific products is wrong or incomplete: a missing size, an invalid price, a title over the limit. These affect only the products listed, and you fix them in the product data or in the feed's mapping.

|| Fix Account issues first. While a Merchant Center account is suspended or a login is expired, products stay disapproved no matter how clean your data is.

| What you see | Tier | Where you fix it |
| ---- |
| Connection expired, access revoked, account not connected | Account | Reconnect the channel in Omega Feed |
| Account suspended, policy violation, website not claimed | Account | Google Merchant Center / Meta Commerce Manager |
| No shipping policy, store website not set | Account | Google Merchant Center settings |
| Missing / invalid attribute on some products | Feed | Product's final feed data, or the feed's mapping |
| Title too long, description too long, price out of range | Feed | The product in Shopify, or the feed's mapping |


![Issue details showing the error title, description and What to do steps](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_se4fvu.png)

## Find the products that are failing

Go to **Feed -> Products**. The **Approval status** column shows a red **N issues** badge on every product a channel rejected.

* Switch to the **Not approved** tab to see only the blocked products.
* Click the **N issues** badge on any row to open the issue details.

Each issue card shows the error title, total variant affected, filter button to groups products by that issues

| A product can carry issues from more than one channel. You need to fix issuees from each feed to make sure they will not happen again

![The issue details panel with filter buttons](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_gat98k.png)

## Fix one product using its final feed data

The fastest way to understand a rejection is to look at exactly what Omega sent. Open **Feed → Products**, then click a product row to open its detail.

The table you land on is the final feed data — everything this feed submits for that product:

* **Attributes** — the channel attribute name. A red **\*** marks the ones the channel requires; hovering it says *Required. Missing values lead to rejection*.
* **Value** — what this feed actually sends today. This is the value the channel judged.
* **Default feed value** — what the mapping produces before any override.

Read the error code first, find that attribute in the table, and look at its **Value**:

* **Blank on a required attribute** → the source field in Shopify is empty, or nothing is mapped to it. Fill it in Shopify, or map it (next section).
* **Wrong or malformed value** → correct it at the source in Shopify so every feed benefits.
* **Correct in Shopify but wrong for this one channel** → type the right value straight into the **Value** field and save. The row is then badged **Customized** and keeps your value on every sync until you press **Reset default value**.


| Custom values are per feed. The same product can send one value to Google and another to Facebook.

|| Editing values on a product requires the **Basic** plan or higher.

![The final feed data table with a customized attribute](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_q47y6v.png)

## Fix every product at once using mapping fields

If dozens or hundreds of products report the same missing attribute, the source is almost never the products — it is the mapping. Open **Feed →  Mapping fields or Mapping rules**.

The **Field mapping configuration** card lists every attribute the channel accepts:

* **Attributes** — the channel attribute, with a red **\*** on the required ones.
* **Shopify value** — the Shopify field (or fixed text) that fills it. This is what you change.
* **Preview** — a sample of the result, so you can confirm the mapping before saving.

To fix a "missing attribute" error for a whole feed:

1. Type the attribute name into **Search for attribute** — for example `description`.
2. Open the **Shopify value** picker on that row.
3. Pick the Shopify field that holds the data — a variant option, a product field, a metafield — or type a fixed value that is true for your whole catalog.
4. Check **Preview**, save, and re-sync the feed.

| Mapping fields apply to **all** products in the feed. When only some products need a different value, use **Mapping rules** (conditional) or a custom value on the single product instead.

|| Editing field mappings requires the **Scale** plan or higher.

![The Field mapping configuration table](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_1yabqvc.png)

## Push your fixes to the channel

Nothing you change reaches Google or Facebook until the feed syncs again. After a fix, submit it one of these ways:

* **One product** — open **Feed → Products  → Detail**  and press the **Resync product** button.
* **The whole feed** — after you change settings or mapping, a banner appears at the top of the feed with **Sync now**. Press it to re-submit every product in the feed.


Approval status does not update the moment the sync finishes. The channel re-reviews on its own schedule — usually a few hours for Google and around 20 minutes for Facebook — so the badge can stay red for a while after a correct fix.

![The feed Products tab with the sync action on a row](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_5unyma.png)

Still stuck on an error code, or not sure which field to change? Press **Request error fix** on any issue card and the chat opens with that product and error code already filled in, so we can look at your exact case. You can also reach us from the chat bubble in the bottom-right corner of any page.

## Error codes: missing attributes

These are the most common rejections, and nearly all of them are solved on the **Mapping fields** tab.

| Error code | Attribute | What it means | Fix |
| ---- |
| `item_missing_required_attribute` | title | Required title is empty | Map **title** to your Shopify product title, or fill it in Shopify |
| `item_missing_required_attribute` | price | Required price is empty or zero | Set a price in Shopify; check **price** is mapped |
| `item_missing_required_attribute` | image link | Product has no image | Add an image in Shopify, or map **image link** to another image field |
| `item_missing_required_attribute` | link | Product URL is empty | Check **link** is mapped and the product is published to a sales channel |
| `item_missing_required_attribute` | availability | Stock status is empty | Map **availability**, or set inventory in Shopify |
| `missing_item_attribute_for_product_type` | color | Apparel product has no color | Map **color** to your Shopify Color variant option |
| `missing_item_attribute_for_product_type` | size | Apparel product has no size | Map **size** to your Shopify Size variant option |
| `missing_item_attribute_for_product_type` | gender | Apparel product has no gender | Map **gender**, or set a fixed value on the **General settings** tab |
| `missing_item_attribute_for_product_type` | age group | Apparel product has no age group | Set a fixed **age group** (most stores use `adult`) |
| `missing_potentially_required_attribute` | unit pricing measure | Recommended value is absent | Optional — map **unit pricing measure** to a Shopify weight/volume field |
| `missing_potentially_required_attribute` | certification | Recommended value is absent | Optional — map **certification** if your products need one |
| `MISSING_IN_CATALOG` | — | Sent to Facebook but not in the catalog yet | Re-sync, wait \~30 minutes, confirm the product is Active in Shopify |

|| Missing **color**, **size**, **gender** and **age group** only apply to apparel and accessory products. Products still show, but they rank lower until you fix them.

For example, `missing_item_attribute_for_product_type` on **size** means the channel got nothing in the `size` attribute. Open **Mapping fields**, search `size`, set **Shopify value** to your Size variant option, save, and re-sync — every apparel product in the feed is corrected in one pass.

![Mapping the size attribute to a Shopify variant option](https://storage.crisp.chat/users/helpdesk/website/-/8/3/8/3/8383e5404a31c000/image_1enwvci.png)

## Error codes: invalid values

Here the attribute is present but the channel refused the value. Correct it in Shopify when the whole catalog is affected, or as a custom value on the final feed data when it is one product.

| Error code | Attribute | What it means | Fix |
| ---- |
| `price_out_of_range` | price | Price is not a valid positive amount | Fix the price in Shopify |
| `real_number_out_of_range` | unit pricing measure | Unit price value is not a positive number | Fix the unit price measurement on the Shopify product |
| `text_value_truncated` | title | Title is over the limit and was shortened | Optional — shorten the title in Shopify |
| `text_value_truncated` | description | Description was auto-shortened | Optional — shorten the description in Shopify |
| `INVALID_ARGUMENT` | description | Description is over 5,000 characters | Shorten the description in Shopify |
| `text_value_too_long` | mpn | MPN exceeds the allowed length | Shorten the MPN value |
| `google_category_unrecognized` | google product category | Category is not in Google's taxonomy | Pick a category from the dropdown on the **General settings** tab |
| `image_too_small_for_high_resolution` | image link | Image is below the minimum size | Upload an image of at least 800×800px in Shopify |
| `language_mismatch` | — | Content language differs from target country | Translate the content, or split into one feed per language |
| `Out of stock` | availability | Product is marked out of stock | Update inventory in Shopify, or set availability to `in stock` |

| `text_value_truncated` and `condition_updated_from_detected` are informational — the channel already corrected them and your products still show. Clear the blocking errors first.

## Error codes: account-level

These never clear from the product data. Fix them where the table says, then re-sync.

| Error code | What it means | Fix |
| ---- |
| `UNAUTHENTICATED` | Google connection lost | Reconnect Google in Omega Feed |
| `FACEBOOK_SYNC` (session expired/revoked) | Facebook login is no longer valid | Press **Reconnect** on the issue card and sign in again |
| `NOT_FOUND` | Google data source is missing | Reconnect Google — the data source is recreated |
| `homepage_not_claimed` | Store website is not claimed | Claim your website in Google Merchant Center |
| `missing_provider_homepage` | Website is not set in Merchant Center | Merchant Center → Settings → Business information → Website |
| `url_does_not_match_homepage` | Product URLs differ from your store URL | Make the Merchant Center website match your Shopify domain |
| `missing_shipping` | No shipping cost configured | Merchant Center → Shipping and returns → add a shipping policy |
| `policy_enforcement_account_disapproval` | Merchant Center account is suspended | Resolve the violation in Merchant Center, then request a review |
| `pending_initial_policy_review_*` | Your account is still under review | Nothing to do — wait for the channel to finish reviewing |
| `invalid_destination` | The feed's destination is not valid | Re-check the destination on the feed's **General settings** tab |

|| Policy violations (`*_policy_violation`) are decided by the channel, not by Omega Feed. We can show you which products are affected, but the appeal has to be filed in Merchant Center or Commerce Manager.

## Troubleshooting

### I fixed the product but it still shows as disapproved

Approval status comes from the channel, not from Omega Feed. After you save a change, re-sync the feed and give the channel time to re-review — Google usually takes a few hours, Facebook around 30 minutes. Until then the old status stays on the row.

### The issue details panel has no fix buttons

Inside **Feed settings → Products** the panel is read-only, so that browsing a feed never changes it by accident. Open the **Products** page from the left menu and click the same **N issues** badge there to get the action buttons.

### I mapped the attribute but the value is still empty

Check the **Preview** column on the **Mapping fields** row. An empty preview means the Shopify field you mapped is itself empty on your products. Open one affected product's final feed data and confirm what the **Default feed value** column shows — if it is blank there too, the data has to be added in Shopify first.

### The same error appears on hundreds of products

That is a mapping problem, not a product problem. Fix it once on the **Mapping fields** tab instead of editing products one by one. If the error is account-level, one reconnect or one Merchant Center setting will clear the whole list.

### A product has issues on Google but is fine on Facebook

Each channel judges your data by its own rules, and each feed can map and override attributes differently. Open the product's final feed data **inside the failing feed** — the values there are the ones that channel saw.
