Articles on: Frequently Asked Questions (FAQ)

What should I do if my import process fails halfway?

Imports may fail halfway due to issues such as incorrect mapping, problematic fields in the source file, incompatible file structure, or filters blocking all products. If your import stops midway:


• Check your field mapping, especially sensitive fields like Description, as incorrect mapping can cause interruptions. A malformed or overly short Description value can also trigger an error.
• Review filters to ensure they don’t exclude all products. If you are importing variants, make sure the required variant fields contain values; for example, an empty Size value can prevent products from being imported.
• Verify that the source file format and structure match what the feed expects.
• If the error involves images, make sure the Images field returns direct image URLs rather than a whole nested image group or object. A nested array or object may cause errors such as undefined method flatten!'. Update the mapping to extract the URL list. For example: {{ data | jmespath: '"imgs".*[][]."url"' | json }}`.
• If the import stops because Shopify’s daily API limit was reached, the remaining products will automatically continue after 24 hours.
• If the issue persists after these checks, contact support so the technical team can inspect and fix backend or file‑specific issues.


In many cases, adjusting the mapping or backend settings resolves the issue and allows the import to complete successfully.


Additional known causes:
• Nested array structures (for example in image fields) may require updated mapping syntax to parse correctly.


Additional example:
If you encounter the message “0 imported but fails halfway” and your feed contains nested image arrays, you may need to adjust the image field mapping. For example, replacing a simple path like Resimler/Resim with a JMESPath expression such as {{ data | jmespath: '["Resimler"."Resim"][]' | json }} can resolve parsing issues.


When a feed’s image field points to an entire image group instead of actual URLs, extract the direct URL values. For example, replace a mapping that selects jmespath: '"imgs"' with {{ data | jmespath: '"imgs".*[][]."url"' | json }} so the main image and gallery image URLs are imported as a flat list.

Updated on: 05/08/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!