For arlanix/product-feed 1.0.0
Troubleshooting
Find a problem by the message you see: search this page for its exact words, leaving out the names and numbers in it.
When feeds never run
The grid's Health says — and Last delivery never delivered long after Generate, and the feed grid and form show a warning that the feed cron or the Magento indexer cron has not run in the last 15 minutes:
- No crontab.
cron:runby hand works, nothing happens on its own:bin/magento cron:install. - Groups limited. A crontab or a deployment that runs
cron:run --group=defaultonly, or a hosting panel that schedules named groups, leavesarlanix_feedorindexout. Run all groups, or addbin/magento cron:run --group=arlanix_feedand--group=index. - Catalogue being built. Last delivery says Catalogue: being built: the product indexer is invalid and
indexer_reindex_all_invalidhas not built it yet; see The indexers. - Jobs pile up as
pending. The cron process dies or is killed before the jobs start; look at the cron's own output and at the PHP CLI memory and time limits. Every run records the limits it ran under; the Feed run history item of the support bundle lists them for each run beside its peak memory.
The log
The modules log to var/log/arlanix.log. The level is set in the admin or in app/etc/env.php; see Log level.
What the jobs write there, for one feed or one store view, never stopping the others:
| Level | Line | Means |
|---|---|---|
info |
Run of feed "google-shopping" skipped: … | The command line or another cron is on the same feed. Nothing is wrong; the next minute takes it. |
info |
Run of feed "google-shopping" waits: … | The catalogue is being built, which on a large catalogue takes a while. No run is recorded; the feed is delivered the minute the build is done. |
warning |
Run of feed "google-shopping" refused: Nothing to deliver … / Nothing taken down … | Every product was left out, so nothing was published or taken down. The feed's Why? says what to fix. |
warning |
Feed 7 skipped: no installed module provides its channel "…" | The module of the feed's channel was removed. Said once at each scheduled time; the feed runs again at the next one once the module is back. |
error |
Run of feed "google-shopping" failed: … | Anything else, with its trace. A failed file feed is tried again within 15 minutes, or at its schedule if that comes first; each failure in a row after that waits twice as long, schedule or not: 30 minutes, an hour, two, four, then every six hours until a delivery works. Generate or Deliver to SFTP runs it at once. A feed sent row by row waits 5 minutes, then 10, 20, 40 and an hour at most; saving it ends the wait. Google refusing the account, or not answering, stops the run where it is: Stopped part way: …, see Google Merchant Center. |
error |
Building the rows of store view 1 failed; its feeds map again on delivery: … | The indexer could not build some products' rows; the rest of the catalogue goes on, and the feeds of that store view are mapped again on their next delivery. |
warning |
3 feed run(s) were last heard from long ago and are marked stuck. | The arlanix_feed_mark_stuck_runs job, every 5 minutes, found runs that had not reported progress for arlanix_feed/schedule/stuck_after minutes, 30 by default, and marked them Stopped responding. The process running them died or was killed: look at the cron's output and the PHP CLI memory and time limits. |
warning |
Feed history cleanup ran out of time; the rest goes on the next run. | The nightly arlanix_feed_clean_runs job removes old runs in batches for a limited time. A long history takes more than one night; nothing is wrong. |
error |
Feed history cleanup failed: … / Marking stuck feed runs failed: … | The job stopped on an error, with its trace. The next run of the job tries again. |
warning |
Google taxonomy: https://www.google.com/basepages/producttype/taxonomy-with-ids.de-DE.txt could not be fetched (…). Using the copy bundled with the module. | The store cannot reach www.google.com; see Requirements. The category search uses the en-US list bundled with the module. |
warning |
Google taxonomy de-DE: 2 line(s) could not be read, first was "…". | Google's list had lines the module could not read. The rest of the list is used. |
error |
Google taxonomy de-DE: nothing was fetched and the bundled copy at … could not be read. | Neither Google nor the module's own file gave a list, and the category search says The taxonomy for de-DE could not be fetched and the copy bundled at … could not be read. Reinstall the module's files, then let the store reach www.google.com. |
On the command line
arlanix:feed:generate stops before it runs any feed when its options are wrong:
| Message | Means |
|---|---|
Specify --feed=<identifier> or --all. |
Neither option was given. The command exits with 2. |
--build-only and --deliver-only are mutually exclusive. |
Both were given. The command exits with 2. |
No active feeds. |
--all found no feed that is switched on. The command exits with 0. |
How each feed's run ended, and the exit codes, are in Run a feed from the command line.
Deliveries
SFTP
A server that is slow, silent or refuses the connection is in When the server is slow or down. One more message comes from the upload itself:
| Message | Means |
|---|---|
| The SFTP destination directory does not exist or is not accessible. | The folder of the feed's Remote file name or path is not there, or the SFTP user cannot open it. Create it on the server or correct the path; a bare file name uploads to the account's root directory. |
Google Merchant Center (API)
A refused or silent Google is in When Google refuses the account, or does not answer. These come from the feed itself, in a run's Details:
| Message | Means |
|---|---|
| This feed has no Google account chosen, so there is nowhere to send products. | The feed's Google account is empty. Choose one in the Channel section and save. |
| Merchant Center did not create a data source for this feed. | Google answered the request for the feed's data source without one. Run the feed again; if it says the same, look in Merchant Center for a data source named *Magento: * and the feed's identifier. |
| Merchant Center already holds "…" for this feed, and it does not take products through the API. Google cannot change that on a source that exists: delete it in Merchant Center and register again. | A data source of that name was made in Merchant Center as a file or another input. Delete it there, then press Register with Merchant Center in the feed's Channel section, or run the feed. |
A feed that supplements another writes these to the log as warnings, and its run goes on; the products still reach its own data source, and the next run tries the link again:
| Message | Means |
|---|---|
| This feed does not own its products, and no feed was named for it to supplement — so what it sends applies to nothing. Choose one under Channel. | Owns the products is off and Supplements feed is empty. |
| The feed this one supplements has not registered its own data source yet, so the link could not be made. Run that feed first, then this one. | The primary feed has not run, nor been registered. |
| The feed this one supplements belongs to a different Google account | A supplemental data source can only be linked to a primary one of the same Merchant Center account. Choose a feed that sends to the same account. |
Your own extensions
What the modules say when an extension of yours is wired wrong:
| Message | Means |
|---|---|
| No installed module delivers feeds of the channel type "…". | A feed's channel has no item in ChannelPool, usually because the module that registered it was removed or switched off. See Channels. |
| Unknown resolver "…". Available: …. | A mapping row names a resolver that has no item in ResolverPool. See Resolvers. |
| Unknown format "…". Available: …. | A feed's format has no item in WriterPool. See Writers. |
| There is no setting "…" on this entity. Register it in di.xml, as an item of the "settings" array of the … this entity is wired to. | A form field or a setting was saved that no setting pool declares. See Add the channel's settings. |
| The setting "…" does not name a fieldset. … | A setting's name has no /: it is named <fieldset>/<field>, the fieldset it appears in, then the field. |
The setting "…" declares normalise as …. It has to name a class: … |
A setting's normalise item is not an object. |
| The … "…" is a …. It has to implement …. | A pool item is not the interface the pool takes. See Extend the module. |
What the store owner sees
The manual's Troubleshooting explains these to the store owner. Here each is with the code that says it, for when the owner sends one on.
| Message | Said by | Why, in the code |
|---|---|---|
| The feed cron or the Magento indexer cron has not run in the last 15 minutes, … | Arlanix_Feed, Model/Feed/QuietCronWarning.php |
See When feeds never run. |
| The feed indexer … is set to "Update on Save", … | Arlanix_Feed, Model/Build/Indexer/RealtimeIndexerWarning.php |
See The indexers. |
| 3 products were left out of the feed on … / Nothing was delivered on … | Arlanix_Feed, Controller/Adminhtml/Feed/Edit.php |
The feed's last run left products out; the run's messages say which and why. |
| No mapping rule for …, which the feed type requires. … | Arlanix_Feed, Model/Field/MappingCoverage.php |
The feed type's field catalog marks fields required that the mapping has no row for; see Field catalogs. |
| Feed "…" is switched off, so nothing will pick it up. … | Arlanix_Feed, Model/Feed/OnDemandRun.php |
The feed is inactive, and the cron takes active feeds only. |
| Feed "…" is sent as its products change; there is nothing to run by hand. | Arlanix_Feed, Model/Feed/OnDemandRun.php |
The feed's channel declares no on_demand in ChannelPool; see Channels. |
| Another feed already uses the identifier "…". | Arlanix_Feed, Model/Feed/Validator.php |
Identifiers are unique. |
| Feed "…" already publishes to …. … | Arlanix_Feed, Model/Feed/FileCollisionValidator.php |
Two feeds resolve to the same path under pub/media. |
| The file name cannot contain a folder: … | Arlanix_Core, Model/Settings/Normaliser/FilenameNormaliser.php |
A / or \ in channel/filename is refused, not stripped, so a name cannot reach outside the feeds folder. |
| Mapping: rows … both write "…". … | Arlanix_Feed, Model/Feed/MappingSection.php |
Two rules for one target field. Nothing of the feed is saved. |
| Google categories: row … has only one half filled in. … | Arlanix_Feed, Model/Feed/CategoryAssignmentsSection.php |
|
| Conditions: "…" is not a condition a feed can choose its products by. | Arlanix_Feed, Model/Feed/ConditionsSection.php |
The conditions hold a type outside the feed's own condition classes. |
| Cron will never act on "…", … | Arlanix_Feed, Model/Feed/Validator.php |
The Schedule section comes to a cron expression with no next run. |
| Choose the SFTP connection this feed publishes through. and the other SFTP refusals on save | Arlanix_FeedSftp, Model/Feed/SftpSettingsValidator.php |
See Point a feed at it. |
| Choose the Merchant Center account this feed publishes into. …, Fill in …, … cannot be changed: … | Arlanix_FeedGoogleMerchant, Model/Feed/ApiSettingsValidator.php |
Feed label and content language are fixed once Google creates the data source. See Set up the feed. |
| A primary data source already exists for this account, label and language: … | Arlanix_FeedGoogleMerchant, Model/Feed/DuplicatePrimaryValidator.php |
Two primary sources with the same account, label and language would claim the same offer ids. |
| These inventory sources do not serve this feed's store view: … | Arlanix_FeedInventory, Model/Feed/SourcesValidator.php |
A source not linked to a stock of the store view's website. |
| Nothing to preview: … / The store view's catalogue was not built with … yet, … | Arlanix_Feed, view/adminhtml/templates/feed/preview.phtml |
The second: the mapping reads attributes the store view's catalogue index does not hold yet (Block/Adminhtml/Feed/Preview.php, getUnbuilt()); the next build adds them. |
| Nothing to deliver: … | Arlanix_Feed, Model/DeliveryV2/FileChannel.php |
Every product left out, or none matched, and channel/allow_empty is off. |
| Nothing taken down: … | Arlanix_Feed, Model/DeliveryV2/PushChannel.php |
The same, for a feed sent row by row. |
| Feed "…" has no mapping rules. | Arlanix_Feed, Model/Feed/FeedReadiness.php |
The run stops before it maps anything. |
| Stopped part way: … | Arlanix_Feed, Model/DeliveryV2/PushChannel.php |
See When Google refuses the account, or does not answer. |
| This feed is counted over inventory sources …, and none of them exists and is enabled. … | Arlanix_FeedInventory, Model/Source/SelectedSources.php |
The sources saved on the feed were deleted or disabled since. |
| The target field "…" is not a valid XML element name. … | Arlanix_Core, Model/Writer/XmlRssWriter.php |
An XML feed's mapping writes a field whose name XML refuses as an element. |
| Cannot delete "…": it is used by …. … | Arlanix_Feed, Model/ResourceModel/Dictionary.php |
Mapping rows of those feeds name the dictionary. |
| This dictionary falls back to a default value, so it needs one. … | Arlanix_Feed, Model/Dictionary/Validator.php |
|
| "…" has … options, too many to choose from in a list. … | Arlanix_Feed, Model/Source/AttributeOptions.php |
More than 2,000 option labels. |
| This SFTP connection is used by … / SFTP host must be a host name or IP address, … | Arlanix_FeedSftp, Model/ResourceModel/Connection.php, Model/Connection/Validator.php |
|
| This Google account is used by … / The Merchant Center account id is a number, … | Arlanix_FeedGoogleMerchant, Model/ResourceModel/GmcAccount.php, Model/GmcAccount/Validator.php |
|
| Files already published were left in place. / The data source of feed "…" and its products stay in Merchant Center. … | Arlanix_Feed, Controller/Adminhtml/Feed/Delete.php |
The deleted notice of the feed's ChannelPool item; see Channels. |
In the admin
| Message | Means |
|---|---|
| Something went wrong. Check the log for details. | An error the module did not expect. Its error line in var/log/arlanix.log starts with what was being done, such as Deleting feed 7:, and has the trace. |