Troubleshooting

For arlanix/product-feed 1.0.0

Troubleshooting

Find your problem by what you see in the table below, or by the message itself: search this page for its exact words, leaving out the names, numbers and dates in it.

When something is wrong

What you see What it means What to do
The grid says never delivered long after Generate, and a yellow message above it says the feed cron or the Magento indexer cron has not run The Magento cron, which runs the feeds, is not running. Ask your developer to check it: When feeds never run tells them what to look at.
A yellow message says a feed indexer is set to Update on Save Products changed by an import, a mass action or straight in the database do not reach the feeds. Warnings above the feed pages says how to switch it back.
Health says 3 left out or Empty, not delivered Products have nothing in a field marked Required in the mapping, or a dictionary excludes them. Press Why?: the run names the field, says why it is empty, and has the buttons to fix it and to see the products.
A product is missing from the file Its conditions leave it out, it has nothing in a field marked Required in the mapping, or a dictionary excludes it. Preview it on the feed. Not in this feed points at the Products section; Left out under the row names the field. Why? in the grid lists every product left out, with its reason.
A column is empty for every product The row's source is wrong, or it says -- Choose --. Open the mapping row and pick a source. Preview to confirm.
Merchant Center rejects products Google checks every product against its rules. When Google rejects products lists the usual reasons and the fix for each.
Merchant Center shows the wrong price The feed carries another customer group or tax setting than the site shows. Products section: Prices for customer group and Prices with tax.
Health says Failed Press Why?. Nothing to deliver is the empty-feed guard, see An empty feed is never published; a delivery failure names the server and the reason; a build failure names the product.
Health says Stopped responding The process running the feed was stopped before it finished, usually by a memory or time limit of the server. The next run tries again. If it keeps happening, send your developer the support bundle: its Feed run history shows each run's memory and limits.
A field is refused on save with "unknown modifier" A chip holds a name the module does not know. Open + on the row and pick from the list.

Warnings above the feed pages

The feed grid and the feed form check two things the feeds depend on, and when one of them is wrong they say so in a yellow message at the top of the page. The screenshots on these pages are of a store where both are right, so they show neither.

  • The feed cron or the Magento indexer cron has not run in the last 15 minutes, so feeds are not built or delivered on their schedule, and a feed run by hand from the grid waits for it. The Magento cron, which builds and delivers the feeds, is not running, or runs without the feeds' jobs. Nothing goes out on its schedule, and Generate only queues the feed: right after it the message reads Feed "google-shopping" is queued, but … nothing will pick it up. Ask your developer to check the cron: When feeds never run tells them what to look at. Until it runs, they can deliver a feed with bin/magento arlanix:feed:generate, as the message says.
  • The feed indexer … is set to "Update on Save", so products changed by an import, a mass action or directly in the database are not rebuilt into the feeds. The feeds still go out, but a product changed other than by saving it in the admin keeps its old price, stock or text in them. Switch the indexers the message names to Update by Schedule in System → Index Management, or ask your developer to run the command at the end of the message; The indexers explains why.

Neither needs dismissing: the indexer message is gone at the next page once the indexers are on schedule, the cron message once the cron has run.

Opening a feed can show three more messages at the top of its form, about the feed's own last run and its mapping:

Message What it means What to do
3 products were left out of the feed on 14 Oct 2026 03:00. The last run went out without them. Press Why? beside the feed's Health in the grid: it names each field and the products.
Nothing was delivered on 14 Oct 2026 03:00: every product was left out, and the published feed is unchanged. Every product was left out, so the run published nothing. The same: Why? in the grid. See An empty feed is never published.
No mapping rule for brand, gtin, which the feed type requires. The platform may refuse the products. The Mapping section has no row for fields the platform insists on. Add a row for each, or copy them with Copy from: see Mapping.

When you press Generate

Message What it means What to do
Feed "google-shopping" is queued, but the feed cron or the Magento indexer cron has not run in the last 15 minutes, so nothing will pick it up. … The cron is not running; see Warnings above the feed pages. Ask your developer to check the cron, or to run the command at the end of the message.
Feed "google-shopping" is switched off, so nothing will pick it up. Enable it first. The feed's Active is off, so the cron leaves it alone. Turn on Active in the feed's General section, save, and press Generate again.
Feed "google-shopping" is sent as its products change; there is nothing to run by hand. A Merchant API feed has no run to start: its products go to Google as they change. Nothing: its products go to Google as they change.

When you save a feed

A refused save leaves the feed as it was: the form comes back as you typed it, with the message at the top. Correct what it names and press Save again.

Message What it means What to do
Another feed already uses the identifier "google-shopping". Two feeds cannot share an identifier. Change Identifier in the General section.
Feed "google-shopping" already publishes to arlanix/feeds/google-shopping.csv. Give one of them a different file name. Two feeds would write the same file. Change File name in the Channel section, or leave it empty so the file is named after the identifier.
The file name cannot contain a folder: enter only the name, such as google.csv. File name holds a / or a \. Every feed's file is published in the same folder of the store, media/arlanix/feeds/, so a folder in the name is refused. Enter only the name, or leave it empty.
Mapping: rows 3 and 7 both write "title". Give each field one rule. Nothing was saved, in this section or any other. Two mapping rows fill the same field. Remove one of the two rows.
Google categories: row 2 has only one half filled in. Choose both a Magento category and a Google category, or remove the row. A row of the Google categories table has a category on one side only. Fill in both, or remove the row with ×.
Conditions: "…" is not a condition a feed can choose its products by. The Products section holds a condition the feed cannot use. Remove that condition row.
Cron will never act on "…", which is what this feed's schedule comes to. The Schedule section's settings come to a time that never arrives. Change How often, or the time under it.
Choose the SFTP connection this feed publishes through. The feed's channel is SFTP, and SFTP connection is empty. Choose a connection in the Channel section.
The selected SFTP connection no longer exists. The connection was deleted. Choose another one.
Verify the selected SFTP connection before using it on a feed. The connection has not been verified. Open it under Arlanix → SFTP Connections and save it: see SFTP connections.
SFTP destination must be a root-level file name or an absolute file path. Remote file name or path is neither a bare name, google-shopping.csv, nor a path starting with /. Enter the file name you gave Merchant Center.
Choose the Merchant Center account this feed publishes into. A feed delivered through the API has nowhere to send its products without one. The feed's channel is Google Merchant Center (API), and Google account is empty. Choose the account in the Channel section; connect one first under Google accounts.
Fill in Feed label and Content language. Merchant Center files this feed under the label and the language together, and will not register a data source without both. One or both fields are empty. Fill them in.
Feed label is "DE" in Merchant Center and cannot be changed: Google fixes it when the data source is created. A feed that needs another one is a new feed. The feed's data source already exists in Merchant Center, with the old value. Put the old value back, or make a new feed for the new one.
A primary data source already exists for this account, label and language: "…". … Another feed already sends these products to the same account under the same label and language. Give this feed another Feed label, or turn off Owns the products so it adds to the other feed.
These inventory sources do not serve this feed's store view: …. A source outside the store's stock holds quantities nobody can order. Inventory sources names a source the store view's stock does not use. Remove it, or leave the field empty.

In Preview

Message What it means What to do
Nothing to preview: the feed has no mapping, or no products matched. The Mapping section is empty, or the Products section's conditions pick no product. Copy the mapping as in your first feed, or loosen the conditions.
The store view's catalogue was not built with … yet, so those values are empty here. Generate the feed to build them; the file will carry them. The mapping reads an attribute the catalogue does not hold yet. Press Generate: the file will have the values even though Preview does not yet.

Not in this feed and Left out under a product's row are explained in Preview a product.

In a run's Why? or Details

Message What it means What to do
Nothing to deliver: every one of the 181 products was left out, so no file was written and the published file is unchanged. … Every product lacks a field marked Required, or a dictionary excludes it. Why? lists the products and the field. See An empty feed is never published.
Nothing to deliver: the feed's conditions matched no product, so no file was written and the published file is unchanged. … The Products section picks nothing. Check the conditions and the stock setting.
Nothing taken down: every product of the feed is left out now, so the platform keeps what it was sent. … The same, for a Merchant API feed: Google keeps the products it has. As above.
Feed "google-shopping" has no mapping rules. The Mapping section is empty. Copy the mapping as in your first feed.
Stopped part way: Google refused the call (…). The products not reached yet are sent on the next run. Google refused the account or did not answer, so a Merchant API feed stopped. What it sent counts. Send the message to your developer: When Google refuses the account, or does not answer.
This feed has no Google account chosen, so there is nowhere to send products. Google account is empty. Choose one in the Channel section and save.
Merchant Center already holds "…" for this feed, and it does not take products through the API. … Merchant Center has a data source of that name made for a file. Delete it in Merchant Center, then run the feed again.
This feed is counted over inventory sources …, and none of them exists and is enabled. … The sources chosen under Inventory sources were removed or disabled. Choose other sources, or clear the field.
The target field "…" is not a valid XML element name. Use letters, digits, "_", "-" or ".". An XML feed has a mapping row whose Field has a space or another character XML refuses. Rename the field in the Mapping section.
An SFTP message, such as SFTP authentication failed The upload to the SFTP server failed. See When the server refuses it.
The SFTP destination directory does not exist or is not accessible. The folder in Remote file name or path is not on the server. Use a bare file name, or send the message to your developer.
Something went wrong. Check the log for details. An error the module did not expect. Send your developer, or Arlanix support, the support bundle: the log in it has the details.

Dictionaries, connections and accounts

Message What it means What to do
Cannot delete "Google availability": it is used by google-shopping. Detach it from their mapping first. A feed's mapping row uses the dictionary. Clear the row's Dictionary in each feed named, save them, then delete.
This dictionary falls back to a default value, so it needs one. Without it every unmatched value would be published as an empty field. The dictionary sends a default for unlisted values, and the default is empty. Fill in the default value, or choose another way to treat unlisted values.
"color" has 412 options, too many to choose from in a list. Type the values instead. The attribute has too many options to offer as a list in a dictionary or a condition. Type the values.
This SFTP connection is used by 2: google-shopping, meta. Point them at another connection first. Feeds still publish through it. Choose another connection in those feeds, then delete.
SFTP host must be a host name or IP address, without a URL scheme. Host starts with sftp:// or https://. Enter only the name, such as partnerupload.google.com.
This Google account is used by 1: google-api. Point them at another account first. Feeds still send through it. Choose another account in those feeds, then delete.
The Merchant Center account id is a number, for example 1234567. "…" is not. Merchant Center account id holds something else. Copy the number from Merchant Center.

A connection or an account that the server or Google refuses is in SFTP connections and Google accounts.

When you delete a feed

Deleting a feed keeps what it already sent, and the message after it says so:

Message What it means What to do
Files already published were left in place. The feed's file stays at its address, and a platform that fetches it keeps getting the last version. Remove the feed in the platform, such as its data source in Merchant Center. To remove the file too, ask your developer.
The data source of feed "google-api" and its products stay in Merchant Center. Delete the data source there if those products should no longer show. A Merchant API feed's products stay in Google until you remove them. Delete the data source in Merchant Center if the products should go.

In Merchant Center

Google's own messages about your products are in When Google rejects products.

Still stuck

If none of this helps, download the support bundle under Stores → Configuration → Arlanix → Support and open a ticket at arlanix.com/support with it and the feed identifier; Get help says how. The bundle's Feed run history item carries every run of the last seven days.