← All Merchant Center errors

Fix “Invalid value [availability]” in Google Merchant Center

Updated 20 September 2026 · 4 min read

Short answer. Merchant Center disapproves a product with “Invalid value [availability]” when the availability attribute holds anything other than in_stock, out_of_stock, preorder or backorder. Replace the word in your export with one of those four, and make sure it matches what the product page shows.

Shown in Merchant Center asInvalid value [availability]
Attributeavailability
EffectProduct disapproved
Where to find itProducts → Needs attention, then filter by this issue
Free checkReported by the free feed check

What Merchant Center means by “Invalid value [availability]

availability is required and takes one of a fixed set of values. Google’s availability specification lists them: in_stock, out_of_stock, preorder and backorder (plus build_to_order for vehicle ads only). Anything else, including a perfectly clear English word like “available” or “sold out”, is “Invalid value [availability]”, listed as invalid_enum_value in the Content API’s product issues reference, and the product is disapproved.

Google does not interpret. It also does not default: a missing availability is a different error. The value has to be one of the four, spelt as the specification spells it, and it has to agree with what your product page shows, or the product runs into the page-crawl mismatch next.

Why it happens

How to fix it

In Shopify

Shopify has no availability text field; the value is derived from inventory quantity and the “continue selling when out of stock” setting, and Shopify’s channel writes the correct word. If you see this error from a Shopify store, the feed is built by a tool that maps a custom field or a tag to availability. Remove that mapping and let the tool derive it from inventory.

In WooCommerce

WooCommerce’s stock status is instock, outofstock or onbackorder internally, none of which is a Google value as-is. A feed plugin has to translate; our free connector maps them to in_stock, out_of_stock and backorder, per variation. If you export with a generic tool, add the same mapping or the raw status leaks through.

In a CSV or XML feed

Replace every value in the availability column with one of the four. A mapping table is enough: any “available”, “yes”, “limited” or stock count above zero becomes in_stock; “sold out”, “discontinued”, “no” or zero becomes out_of_stock; “coming soon” with a date becomes preorder (and needs availability_date); orderable-but-not-in-stock becomes backorder. Trim whitespace and use lower case.

How long until Merchant Center clears it

The disapproval lifts on the next fetch that carries a valid value, within 24–72 hours. Products that were out of stock all along are then correctly excluded from ads, which can make the approved count look lower than before; that is the feed telling the truth for the first time.

What FeedRobin does about it

This is one of the defects the free check both finds and repairs. It reports every row whose availability word no channel recognises, as critical, because such a product is read as unavailable everywhere while your store still sells it. Then the fix preview shows the translation we would apply, before and after, for the words we know (schema.org spellings, and stock words in English, Romanian, Hungarian, Czech, Slovak, Polish and German); words we do not know stay flagged for a person rather than guessed, since guessing a stock state wrong either hides a product that is for sale or advertises one that is not. Spaced spellings are reported separately as legacy, not as errors, and each channel we render gets the spelling its own documentation asks for.

Questions merchants ask

Is “in stock” with a space valid?

Google’s specification lists the underscore forms and reads the spaced ones. Meta and Microsoft document the spaced forms. Use in_stock for Google and let each other channel have its own spelling rather than sending one file to all three.

Why does “available” fail?

Because it is not on the list. Google does not guess: any value that is not one of the four is invalid, including translations, “yes”, “true”, “1”, “limited” and “sold out”.

What if I have more stock states than four?

Map them. Low stock is in_stock; discontinued and sold out are out_of_stock; coming soon with a date is preorder; temporarily unavailable but orderable is backorder. Your store keeps its own vocabulary; the feed uses Google’s.

Sources

Related errors

Mismatched value (page crawl) [availability]Fix “Mismatched value (page crawl) [availability]” in Merchant Center
Product disapproved
Missing value [price]Fix “Missing value [price]” and zero prices in Google Merchant Center
Product disapproved
Missing value [availability]Fix “Missing value [availability]” in Google Merchant Center
Product disapproved

Read next

Product feeds for price comparators: the XML formats explainedHeureka and Compari/Árukereső side by side, element by element — what they share underneath, why a shared owner doesn't mean a shared file, and the six mistakes that make a portal list zero products.
7 min
Facebook & Instagram catalog: why products get rejected (and what Meta only pretends to require)The wrong-format import trap, availability words Meta doesn't know, images ads can't use, price mismatches, ungrouped variants and unstable IDs — plus the fields Meta lists as required but never enforces.
7 min
Not sure what's wrong with your feed?Paste your feed URL and FeedRobin checks every product for missing barcodes, images, descriptions and more — free, no account needed.
Check my feed — it's free What it checks →