# Mismatched value: availability

The availability mismatch error means the feed says an item is purchasable but the crawled landing page suggests otherwise, or the reverse. On Shopify it is usually a stale feed after a sell-out, or an availability value derived from inventory quantity alone without accounting for variants that do not track inventory or that allow overselling.

- **Canonical URL:** https://www.feedlab.io/knowledge/errors/mismatched-value-availability
- **Last reviewed:** 16 September 2026
- **Source:** feedlab knowledge base
- **Licence:** free to quote and cite with attribution to feedlab




## How this appears in your account

- `Mismatched value (page crawl): availability [availability]`
- `Availability mismatch`
- `Product unavailable on landing page`


## Why it happens on Shopify

### The product sold out after the last feed generation

The most common case, and a pure timing problem. The feed was accurate when it ran, stock reached zero afterwards, and the crawler compared the live page against a feed describing an earlier moment.

### Availability was derived from quantity alone

A variant with zero inventory is still purchasable if it does not track inventory, or if it allows overselling. Mapping in_stock purely on quantity greater than zero marks those items out of stock while the storefront happily sells them.

### The link resolves to a variant that is unavailable

If the link omits the variant parameter, the crawler lands on the product's default variant. When that default is sold out but the row describes an in-stock variant, the page and the feed disagree.

### Stock is location-scoped

Shopify tracks inventory per location. Summing every location, including warehouses that do not fulfil online orders, overstates what is actually purchasable through the storefront.

### The availability value uses the wrong vocabulary

Values must be lowercase with underscores. Older space-separated forms such as "in stock" persist in feed templates and are either rejected or misread.




## How to fix it

1. **Check the failing row against its own link** — Open the link from the row and confirm whether that specific variant is buyable. This separates a timing problem from a logic problem, and the two need completely different fixes.
2. **Derive availability from purchasability, not quantity** — An item is in stock if it does not track inventory, or tracks inventory with quantity above zero, or allows overselling when out of stock. Only a variant that tracks inventory, has none and denies overselling is genuinely out_of_stock.
3. **Scope inventory to the locations that fulfil online orders** — Exclude locations that do not serve the storefront before summing quantity, so the feed reflects what a shopper can actually buy rather than what exists somewhere in the business.
4. **Include the variant parameter in every link** — Adding the variant selector to the landing page URL sends both the shopper and the crawler to the exact variant the row describes, which removes an entire class of false mismatch.
5. **Regenerate often enough to track how fast stock moves** — For a catalogue with fast-moving or low stock, a daily feed will regularly be wrong. Increase the regeneration frequency, and on channels that support it use a push mechanism for urgent stock changes rather than waiting for the next scheduled pull.



## How feedlab handles this

feedlab registers Shopify webhooks, so an inventory change lands in feedlab within seconds and every scheduled run reads current data rather than a nightly snapshot. Availability is mapped through conditional rules over the inventory policy and tracking fields rather than raw quantity, and a daily reconciliation pass catches anything a webhook missed.








## Frequently asked questions

### How do I correctly map Shopify availability?

Treat it as purchasability rather than quantity. The item is in stock if inventory is not tracked, or tracked with quantity above zero, or the variant allows overselling. Only a tracked variant with no stock that denies overselling is out_of_stock.

### Why do out-of-stock products keep getting disapproved?

Usually feed cadence. If stock reaches zero hours after the feed runs, the feed keeps claiming the item is available until the next regeneration, and the crawler can check at any point in that window.

### Does Shopify multi-location inventory affect the feed?

Yes. Summing every location counts stock held at warehouses that do not fulfil online orders, which overstates availability. Inventory should be scoped to the locations that actually serve the storefront.




## Primary sources

- [Google: availability attribute specification](https://support.google.com/merchants/answer/6324448)
- [Google: Mismatched value (page crawl)](https://support.google.com/merchants/answer/6098296)



