Importing products via CSV into your Shopify store? CSV imports are one of the fastest ways to add or update products in bulk, but they’re also where many store owners hit errors that stop the upload cold. Below is a list of the most common Shopify CSV import error messages and exactly how to fix each one. If you’re still stuck after trying these fixes, reach out to Shopify support or a Shopify developer for help.

Key Takeaways
1
The “Variant Inventory Policy” column must contain exactly “deny” or “continue” (lowercase, no spaces) or your import will fail.
2
Set “Variant Fulfillment Service” to “manual” unless you use a third-party fulfillment provider connected to your Shopify account.
3
Image URLs in the “Image Src” column must start with https:// and point to a publicly accessible file under 20 megapixels.
4
Always check your CSV header row for extra spaces, missing columns, or incorrect column names before uploading.

Error Messages

Below are the specific error messages Shopify displays during a CSV import, along with what causes each one and the exact steps to fix it.

Inventory Policy Is Not Included in the List

This is one of the most common Shopify import errors. It means the value in your Variant Inventory Policy CSV column is not one of the two accepted options. Shopify only allows two values here:

  • deny - Shopify will prevent customers from buying the product when inventory reaches zero. This is the most common setting for physical products.
  • continue - Shopify will allow customers to keep purchasing even when the item is out of stock. Use this for pre-orders, made-to-order items, or digital products.

The value must be lowercase and contain no extra spaces. Common mistakes that trigger this error include entering “Deny” (capitalized), “Deny selling” (extra text), leaving the cell blank, or having a trailing space after the value.

To fix this, open your CSV file and find the Variant Inventory Policy column (column R in Shopify’s default template). Make sure every row contains either deny or continue. Here is what a correct row looks like:

my-product-handle,My Product,"

Description

",My Vendor,Widget,tag1,true,Size,Small,,,,,SKU123,500,shopify,10,deny,manual,29.99,,true,true,,https://example.com/image.jpg,Product image alt

If you’re editing in Google Sheets or Excel, use Find & Replace to search for any values in that column that aren’t “deny” or “continue.” Also check for hidden whitespace characters by trimming the cells.

Fulfillment Service Can’t Be Blank

This error appears when the Variant Fulfillment Service column in your CSV is empty or contains a value Shopify doesn’t recognize. Every product variant needs a fulfillment service assigned to it.

If you fulfill orders yourself (packing and shipping from your own location), set this column to manual. If you use a third-party fulfillment service like ShipBob, Amazon FBA, or another provider, you need to enter the exact handle of that service as it appears in your Shopify admin under Settings > Shipping and delivery > Custom order fulfillment.

A common cause of this error is copying products from another store or platform where the fulfillment service name doesn’t match what’s configured in your Shopify account. Check that the fulfillment service is actually set up in your Shopify admin before importing. If you only use Shopify’s built-in fulfillment, simply put manual in every row.

Ignored Line #-## Because Handle Already Exists

This error shows up when a product row in your CSV has a handle value but no product title. Shopify reads the handle, finds it already exists, and skips the line since it can’t determine what to do with it.

To fix this, open your CSV and look for any rows that have a value in the Handle column but an empty Title column. If the row is a variant of an existing product, the Title column should be empty and that’s fine - but the Handle must match the parent product’s handle exactly. If the row is supposed to be a new product, fill in the Title. If the row is a duplicate you don’t need, delete it from the CSV entirely.

Illegal Quoting on Line

This error means your CSV file contains a character that breaks CSV parsing, usually a mismatched or curly quotation mark. Spreadsheet programs like Excel sometimes convert straight quotes (") into curly quotes (" or "), which Shopify can’t read.

To fix this, save your CSV with UTF-8 encoding. In Excel, go to File > Save As and choose “CSV UTF-8 (Comma delimited).” Then open the file in a plain text editor (like Notepad or VS Code) and search for curly quotes. Replace them with straight quotes. Also look for unmatched quotes - every opening quote needs a closing quote on the same field.

Incorrect Header Check

This error typically appears when an image reference in your CSV is corrupted or points to a file that can’t be read. The file might be in a format Shopify doesn’t support, or the image data might be damaged.

Try removing the image URL from the Image Src column for the affected row and re-uploading the CSV. If the import works without the image, the issue is with that specific file. Re-save or re-export the image as a JPG or PNG, upload it to a publicly accessible host, and update the URL in your CSV.

Invalid CSV Header: Missing Headers

Shopify requires your CSV file to have a specific header row as the first line. If any required column names are missing, misspelled, or in the wrong order, you’ll get this error.

The correct header row for a standard Shopify product CSV is:

Handle,Title,Body (HTML),Vendor,Type,Tags,Published,Option1 Name,Option1 Value,Option2 Name,Option2 Value,Option3 Name,Option3 Value,Variant SKU,Variant Grams,Variant Inventory Tracker,Variant Inventory Qty,Variant Inventory Policy,Variant Fulfillment Service,Variant Price,Variant Compare At Price,Variant Requires Shipping,Variant Taxable,Variant Barcode,Image Src,Image Alt Text

Copy this header row exactly, including the spaces and capitalization. A very common mistake is having an extra space or invisible character at the end of the header row. Open your file in a text editor and make sure the last character on line 1 is “t” (the end of “Image Alt Text”) with nothing after it.

Inventory Quantity Can’t Be Blank

This error means you have a row where the Variant Inventory Qty column is empty, but Shopify expects a number there. If you track inventory for this product, enter the actual stock count (even if it’s 0).

If you don’t track inventory at all for this product, you need to also leave the Variant Inventory Tracker column blank. When that tracker column has a value (like “shopify”) but the quantity column is empty, Shopify treats it as a conflict and throws this error. Either fill in both columns or leave both empty.

Inventory Quantity Is Not a Number

The Variant Inventory Qty column only accepts whole numbers. If it contains letters, symbols, decimal points, or special characters, Shopify will reject the row. Check for common issues like accidental currency symbols ($10), commas in large numbers (1,000 instead of 1000), or text like “in stock.” Replace the value with a plain integer.

Missing or Stray Quote on Line

This happens when your CSV has unmatched or extra quotation marks. Excel and Google Sheets sometimes add curly quotes or double up straight quotes in unexpected places, especially in product descriptions that contain HTML.

Open your CSV in a plain text editor and go to the line number mentioned in the error. Look for a quote character that doesn’t have a matching pair, or a field that has three quotes instead of two. In CSV format, if a field contains a comma or quote, the entire field should be wrapped in double quotes, and any quote inside the field should be escaped by doubling it ("").

Validation Failed: An Error Occurred While Trying to Download the Image

Shopify couldn’t download the image from the URL in your Image Src column. The image file might have been deleted, moved, or the server hosting it might be blocking Shopify’s request.

Make sure the URL starts with https:// and that you can open it directly in a browser. The image must be publicly accessible - if it’s behind a login or on a private server, Shopify can’t reach it. Try re-uploading the image to a public host and updating the URL.

Validation Failed: getaddrinfo: Nodename nor Servname Provided, or Not Known

This error means the domain name in your image URL is invalid or can’t be resolved. Usually this happens when the URL is missing the protocol (https://) or contains a typo in the domain name.

Check every image URL in the Image Src column. Each URL must be a complete, valid web address starting with https://. For example, example.com/image.jpg will fail - it needs to be https://example.com/image.jpg. Also verify that the hosting domain is still active and the image is publicly accessible.

Validation Failed: Options Are Not Unique

When a product has multiple variants (like different sizes or colors), each combination of option values must be unique. This error means two or more rows for the same product handle have identical option values.

Check your CSV for duplicate rows under the same handle. For example, if you have two rows for “my-shirt” both with Option1 Value set to “Large” and Option2 Value set to “Blue,” one of them needs to be changed or removed. Also make sure you don’t have the same product listed twice in your CSV file with different handles.

Validation Failed: Price Can’t Be Blank

Every product variant in your CSV must have a value in the Variant Price column. Even free products need a price of 0. Check the affected row and enter a numeric price value. Don’t include currency symbols - just the number (e.g., 29.99, not $29.99).

Validation Failed: The Uploaded Image Exceeds the 20 Megapixel Limit

Shopify limits product images to 20 megapixels (roughly 5760 x 5760 pixels). If your image is larger than this, you need to resize it before importing. Use an image editor or a free online tool to reduce the dimensions. For most product photos, 2048 x 2048 pixels is more than enough and will also keep your page load times fast.