Altera shows a code such as ABC001 with each error or warning. This article explains the codes for this area of the app and how to resolve them. For codes from other areas, see Error and warning codes.
File Analysis Codes
These codes will appear when you upload a spreadsheet to be imported with the app.
ALYS001 - File Does Not Exist
There was an error opening the file you uploaded. Please try again and contact us if the problem persists.
ALYS002 - Zip File Must Contains a CSV File
You can upload a ZIP file with multiple CSV files to have them processed at once. However in this case the app did not detect any CSV files in the zip file you uploaded.
If you want to process multiple Excel sheets at the same time you can combine them into a single Excel workbook and upload that.
ALYS003 - Unsupported File Type or Invalid Content
We couldn't determine if your file was CSV, Excel, or a valid ZIP. Please upload either a CSV file, an Excel workbook with the .xlsx extension, or a ZIP file containing CSV files so our system can process it.
ALYS004 - No Valid Sheets Found
Our system tried to read your file but did not detect any sheets with the required structure. Ensure your file includes sheets that match one of our supported object types (for example, a valid Products or Orders sheet) and try again.
ALYS005 - Unmatched Columns
Your spreadsheet contains columns that Altera does not recognize and these columns will be ignored when you import data through the app.
The most common cause of this is trying to import data that does not match the Altera/Matrixify format. To fix this, make sure your spreadsheet matches the format in our documentation ( Product Fields for example).
ALYS006 - Shopify Product Export Format
The file you uploaded appears to be a product export from Shopify's admin in Shopify's native format. Altera requires product files to be in the Altera/Matrixify format instead. See our Product Fields documentation for the correct format.
You can convert your file to the Altera format by going to Tools > Data transformations in the left menu. Note that even if you convert a Shopify product export to the Altera/Matrixify format, some data may not come through.
Recommended solution for copying products between stores:
If you're trying to copy products from one Shopify store to another, the best approach is to:
Export the products from the source store using Altera
Import the exported file into the destination store
This ensures all product data is captured and transferred correctly.
ALYS007 - Unsupported Duplicate Columns
Some columns can appear multiple times in a spreadsheet but others cannot. Make sure that you don't have any columns with duplicate names besides Tags and Image Src.
The same applies to a column and its old name. For example, Transaction: Shop Currency Amount is the old name of Transaction: Amount (Shop Currency), and Risk: Score is the old name of Risk: Level. Both columns set the same value, so keep only one of them.
ALYS008 - Invalid ID
The ID column contains a value that doesn't look like a valid Shopify ID. Shopify IDs are numeric and at least 9 digits long (e.g., 16224095404377). The ID column should either be empty, contain a Shopify numeric ID, or contain a GraphQL identifier like gid://shopify/Product/16224095404377.
Common causes:
An order name (e.g.,
#1001) was placed in the ID column instead of the Shopify IDA custom reference number or external identifier was used instead of the Shopify ID
A number was formatted as a decimal like
8106245782738.0instead of a whole number
If you are intentionally using your own identifiers in the ID column for row grouping, you can ignore this warning.
ALYS009 - Truncated Metafields
Excel has a character limit of 32,767 characters per cell. When metafields with exactly this character count are detected, they will be ignored during import to prevent data corruption in Shopify. This typically happens when Excel has truncated a longer value.
Note that the limit applies any time Excel reads or writes a cell, including when it opens a .csv file. Saving as CSV after opening in Excel does not restore the original value because Excel has already cut it. To preserve long metafield values, export the file directly from your source as CSV and edit it in a tool without this limit (such as Google Sheets, which allows up to 50,000 characters per cell, or a plain text editor). See IMP007 for more detail.
ALYS010 - WooCommerce Export Format
It looks like you are trying to upload an export of your WooCommerce products to Altera. Please try uploading the file again in the Altera/Matrixify format instead.
ALYS011 - DELETE Command Warning
You are using the DELETE command in your import. Please note that deleting items is permanent and cannot be undone. The deletion will also process any hidden rows in your spreadsheet, so make sure to review your data carefully before proceeding.
ALYS012 - REPLACE Command Warning
You are using the REPLACE command in your import. When replacing items, the existing item will be completely deleted and recreated with the new data. This means all existing data not included in your import will be lost. The replacement will also process any hidden rows in your spreadsheet, so make sure to review your data carefully before proceeding.
ALYS013 - ZIP File Contains Subdirectories
ZIP files uploaded for import should not contain subdirectories. All CSV files should be placed at the root level of the ZIP file. Please restructure your ZIP file to place all CSV files in the root directory without any subdirectories.
ALYS014 - ZIP File Contains Non-CSV Files
The ZIP file you uploaded contains files that are not CSV files. ZIP files for import should only contain CSV files (plus any system files like .DS_Store which are automatically ignored). Please remove any non-CSV files from your ZIP file and try again.
ALYS015 - Invalid Boolean Value
The value provided cannot be converted to true/false. Boolean columns in your spreadsheet must contain recognized true or false values.
Accepted true values:
true1yesyon1.01.00enabledactive
Accepted false values:
false0nonoff0.00.00disabledinactive
Values are case-insensitive, so TRUE, True, FALSE, and False are also valid. Make sure all values in boolean columns match one of these accepted formats.
ALYS016 - Shopify Order Export Format
The file you uploaded appears to be an order export from Shopify's admin in Shopify's native format. Altera requires order files to be in the Altera/Matrixify format instead, which contains more data than Shopify's native export.
You can convert the file under Tools > Data transformations in the app. Note that even if you convert a Shopify order export to the Altera/Matrixify format, not all order data will come through. Shopify's native order export is missing many fields that are required for a complete order import. For example:
Line item properties and custom attributes
Detailed fulfillment information (tracking numbers, fulfillment locations)
Which specific items were refunded (the export only shows refund amounts, not which line items were refunded)
Transaction details beyond basic payment information
Recommended solution for copying orders between stores:
If you're trying to copy orders from one Shopify store to another, the best approach is to:
Export the orders from the source store using Altera
Import the exported file into the destination store
This ensures all order data is captured and transferred correctly.
ALYS017 - No File Analysis Found
The system could not find a file analysis for the uploaded file. This typically occurs when trying to process a file that hasn't been analyzed yet. The file analysis should be triggered automatically when a file is uploaded.
If you continue to see this error, please contact support.
ALYS018 - File Analysis Missing Data
The file analysis completed successfully, but no analysis data was found. This is an unexpected error that indicates a problem with the analysis process.
Please try re-uploading your file. If the problem persists, contact support.
ALYS019 - File Analysis Failed
The system was unable to analyze your file due to an error. This could be caused by:
The file being corrupted or unreadable
An unsupported file format
A problem with the file's internal structure
Try re-uploading your file. If the error persists, verify that your file is a valid CSV, Excel (.xlsx), or ZIP file. Contact support if you need further assistance.
ALYS020 - File Analysis Timeout
The file analysis took too long to complete and timed out. This can happen with very large files or during periods of high system load.
Please try again in a few moments. If the problem persists with the same file, consider:
Breaking your file into smaller chunks
Removing unnecessary columns or rows
Contacting support for assistance with large file imports
ALYS021 - Unrecognized Command
The Command column contains a value we don't recognize. Valid commands are:
MERGE - Update existing items or create new ones if they don't exist (default behavior)
NEW - Only create new items, skip if the item already exists
UPDATE - Only update existing items, skip if the item doesn't exist
DELETE - Delete the item from Shopify
REPLACE - Delete the existing item and create a new one
IGNORE - Skip this row during import
Check your Command column for typos (e.g., "CREATE" instead of "NEW") and update them to one of the supported commands above. You can also leave the Command column blank to use the default MERGE behavior.
ALYS022 - Etsy Product Export Format
The file you uploaded appears to be an Etsy product listings export. This file needs to be converted to the Shopify format before importing.
Use the Etsy Products transformation under Tools > Data transformations to convert this file. See How to Migrate Etsy Products to Shopify for step-by-step instructions.
ALYS023 - Etsy Order CSV Export Format
The file you uploaded appears to be an Etsy Order CSV export. This format gives a summary of each order but does not include the individual line items, which are required for importing into Shopify.
To import your Etsy orders, you need to export the Order Item CSV from Etsy instead. See How to Migrate Etsy Orders to Shopify for step-by-step instructions.
ALYS024 - Etsy Order Item CSV Export Format
The file you uploaded appears to be an Etsy Order Item CSV export. This file needs to be converted to the Shopify format before importing.
Use the Etsy Orders transformation under Tools > Data transformations to convert this file. See How to Migrate Etsy Orders to Shopify for step-by-step instructions.
ALYS025 - First Row ID is Blank But Other Rows Have IDs
Your spreadsheet has an ID column where the first row is blank, but subsequent rows contain ID values. This pattern often indicates a data formatting problem in your spreadsheet.
Why this matters: If there are any valies in the ID column it will be used to group related rows together. For example, a product with multiple variants will have the product ID in the first row, and the variant rows below it share that same ID. When the importer sees a blank ID, it assumes those rows belong to the same item as the previous row.
Common causes:
Newline characters in cell values: If a cell in your data contains a line break (newline character), it may cause data to "leak" into the wrong row, shifting values into the ID column unexpectedly.
Copy/paste errors: When copying data between spreadsheets, formatting issues can cause values to shift into incorrect columns.
Missing ID in first row: If you're creating new items, the first row should still have an ID (or be completely blank in the ID column). Having the first row blank but subsequent rows with IDs suggests the data structure may be incorrect.
How to fix:
Open your spreadsheet and check the first few rows of the ID column
Look for any cells that contain unexpected line breaks or special characters
Verify that each item's first row contains the correct ID
If creating new items, either leave the entire ID column blank or provide valid IDs for all top-level rows
ALYS026 - Shopify Theme ZIP File
The file you uploaded appears to be a Shopify theme ZIP file. Altera is designed for importing and exporting data like products, orders, and customers-not for managing themes.
How to upload themes to Shopify:
Go to your Shopify admin
Navigate to Online Store > Themes
Click Add theme and select Upload zip file
Select your theme ZIP file and upload it
Theme ZIP files typically contain folders like assets, config, layout, locales, sections, and snippets, along with .liquid template files. If you intended to upload a data file (like products or orders), make sure you're uploading a CSV, Excel, or ZIP file containing CSV files instead.
ALYS027 - ID Column Contains Scientific Notation
The ID column in your spreadsheet contains values in scientific notation (e.g., 1.48E+13). This is typically caused by Excel automatically converting large numeric IDs into scientific notation format. This is a critical issue because the ID column is used to group rows together during import - when IDs are in scientific notation, many different rows can appear to have the same ID, causing them to be incorrectly grouped as a single record.
How to fix:
Open your spreadsheet in Excel
Right-click the ID column and select Format Cells
Choose Text as the format
Re-enter or re-paste the original ID values - simply changing the format will not convert existing values back
Verify the IDs are displayed as full numbers (e.g.,
1481234567890) rather than1.48E+13Save and re-upload the file
Tip: When working with large numeric IDs, always format the column as Text before pasting values to prevent Excel from converting them.
ALYS028 - All Sheets Have Errors
Your spreadsheet was matched to a Shopify data type, but all detected sheets contain errors that prevent the import from starting. Review the error messages shown for each sheet and correct the issues in your spreadsheet before re-uploading.
ALYS029 - Unable to Parse CSV File
The CSV file could not be parsed because it contains formatting errors such as mismatched quotes, inconsistent column counts, or other structural issues. This typically happens when:
A value contains commas but is not wrapped in double quotes
A value has an opening double quote but is missing a closing one
A value contains double quotes that are not properly escaped (double quotes inside values should be doubled, e.g.
""example"")A row has a different number of columns than the header row
How to fix:
The easiest fix is to open the CSV file in Google Sheets or Excel and then save it as a new CSV file. This will automatically re-format the file with proper quoting and consistent columns.
If that doesn't work, you can manually inspect and fix the file:
Open the CSV file in a plain text editor (not Excel) to inspect the raw content
Look for the line mentioned in the error message and check for unmatched quotes or extra commas
Ensure all values that contain commas, quotes, or newlines are wrapped in double quotes
Escape any double quotes inside values by doubling them (e.g.
"She said ""hello""")Verify that every row has the same number of columns as the header row
Save the file and re-upload
ALYS030 - Multiple Columns Set the Same Collections Field
Your file has more than one column that assigns a product to custom (manual) collections, such as both a Collection column and a Custom Collections column. Both map to the same underlying field.
This is informational, not an error. The import does not discard either column: it merges their values additively, so the product is added to the collections listed in every colliding column (duplicates are removed).
How to fix:
No action is required. If you prefer to keep things simple, use a single Custom Collections column with a comma-separated list of collection handles or titles, and remove the extra column.
Tip: If you originally exported the file from another application, try re-exporting it. Many applications have options for CSV export that handle quoting automatically.
ALYS031 - Password Protected or Encrypted Spreadsheet
The uploaded spreadsheet is password protected or encrypted, so Altera cannot read its contents. This applies to both .xls and .xlsx files that have been secured with a password.
How to fix:
Open the file in Excel.
Go to File > Info > Protect Workbook > Encrypt with Password.
Clear the existing password and save the file.
Alternatively, export or save an unprotected copy of the spreadsheet.
Upload the unprotected file again.
ALYS032 - Damaged Spreadsheet Structure
The uploaded .xlsx file is a valid ZIP archive, but the spreadsheet data inside it doesn't follow the Excel format. The most common cause is cell references that are missing their column, which happens when a file is generated by a third-party tool or script rather than saved by a spreadsheet application. Altera can't tell which column each value belongs to, so it can't read the file.
How to fix:
Open the file in Excel, Google Sheets, or another spreadsheet application.
Save a new copy as Excel Workbook (.xlsx). In Google Sheets, use File > Download > Microsoft Excel (.xlsx).
Upload the new copy.
Saving the file through a spreadsheet application rewrites the underlying structure and repairs the damaged references. If the tool that produced the file can also export CSV, uploading the CSV instead works too.
ALYS033 - File Over the Import Size Limit
The uploaded file is larger than the 250 MB import size limit, so Altera can't analyze or import it.
How to fix:
Split the data into multiple smaller files, each under 250 MB.
Upload and import each file separately.
For CSV files, splitting by rows works well because each row (or group of rows sharing an ID) is independent. Compressing a CSV into a ZIP file also reduces the upload size significantly.
ALYS034 - File Too Large to Analyze
The file is within the upload size limit, but analyzing it used more memory than allowed. This usually happens with ZIP files that expand to many gigabytes of data, or spreadsheets with an extremely large number of rows or columns.
How to fix:
Split the data into multiple smaller files.
Upload and import each file separately.
ALYS035 - Damaged Spreadsheet File
The uploaded spreadsheet file is damaged. This usually affects older .xls files, which store their data in numbered blocks with an index that says which blocks belong to the spreadsheet. When that index is wrong, parts of the file overlap or point past the end of the file, so the spreadsheet can't be pieced back together. Common causes are an upload or download that stopped partway through, a file recovered from a failing disk or a corrupted email attachment, and older accounting or ERP systems that write incorrect .xls files.
How to fix:
Open the file in Excel. If Excel offers to repair it, accept the repair.
Save a new copy as Excel Workbook (.xlsx).
Upload the new copy.
If Excel can't open the file either, the original is unrecoverable. Export the data again from wherever it came from, and choose CSV or .xlsx if that option is available.
ALYS036 - Damaged or Incomplete Excel File
The uploaded .xlsx file isn't a complete archive. An .xlsx file is a compressed archive of smaller files, with an index of its contents stored at the very end. When that index is missing or a part of the archive is damaged, there's no way to unpack the spreadsheet. The usual cause is a transfer that stopped partway through, such as an interrupted upload, a download that was cancelled, or a file copied from a disconnected drive or a syncing cloud folder.
How to fix:
Upload the file again, and wait for the upload to finish before leaving the page.
If it fails again, open the file in Excel to confirm it still opens on your computer.
If Excel can't open it either, export or download a fresh copy from wherever the file came from.
Checking the file size against the original is a quick way to spot a truncated copy.
ALYS037 - Unreadable Spreadsheet Contents
The uploaded spreadsheet opened, but the data inside it is scrambled, so it can't be read. Unlike ALYS032, where the spreadsheet is structured in a way Altera can't interpret, here the underlying content is damaged and no application can parse it reliably. This usually follows file damage, such as a copy that was interrupted, a recovery from a failing disk, or an editing tool that crashed while saving.
How to fix:
Open the file in Excel. If Excel offers to repair it, accept the repair.
Save a new copy as Excel Workbook (.xlsx), or export the data as CSV.
Upload the new copy.
If Excel can't open the file either, use an earlier version of the file, or export the data again from the system that produced it.
ALYS038 - Customer Notifications Enabled
A customer notification column in your orders file contains TRUE. Shopify sends an email to the customer for every row where the column is TRUE:
Send Receipt: order confirmation emailFulfillment: Send Receipt: shipping confirmation emailRefund: Send Receipt: refund notification emailCancel: Send Receipt: cancellation notification email
This is usually not intended when you import historical orders, for example during a store migration. Customers would get emails about orders they placed months or years ago. The warning tells you which column is affected and how many rows have the value TRUE.
How to fix:
If customers should not get an email, set the column to
FALSEor remove it, then upload the file again.If customers should get an email, no change is needed. The import runs as normal when you start it.
Files exported from Altera always contain FALSE in these columns. Customers who use the Shop app can still get a notification in the app when you import orders. See Customer notifications in the order fields reference for details. For notifications sent to your staff, see ORD004.
ALYS039 - Mixed Collection Column Names
The Collections sheet mixes two sets of column names: the Matrixify columns (Source: Type, Source: Title, Inclusion: Type, Condition: Field, Condition: Value, Sort: Position, ...) and the Altera columns used before September 2026 (Source, Source Target, Must Match, Rule: Product Column, Rule: Condition, Product: Handle, ...). Both sets describe the same source data, so a file that carries both cannot be read unambiguously.
How to fix:
Use one set of column names. New files should use the Matrixify column names; a file exported with the older Altera column names imports unchanged.
Remove or rename the columns from the other set, then upload the file again.
ALYS040 - Undecodable Characters Replaced (Warning)
A few bytes in the CSV file are not valid in the file's text encoding. This usually happens when text with curly quotes or dashes is pasted from another program into a file that is saved as UTF-8, or when a file was saved with one encoding and edited with another. Altera replaced only those bytes with the replacement character (�) and imported the rest of the file unchanged.
How to fix:
Search the import results file for
�to find the affected values.Save the file as UTF-8 (in Excel, choose the CSV UTF-8 (Comma delimited) file type) and import it again, or upload the Excel workbook itself, which has no text encoding to get wrong.
Data Formatting Codes
Error codes related to data formatting and validation that can occur across different object types (orders, customers, products, etc.).
DAT001 - Invalid Phone Number
The phone number provided in your import is not in a valid format that Shopify accepts. Shopify is fairly strict about phone numbers and may reject numbers that are accepted in other platforms.
To ensure the phone number is accepted we recommend the following:
Include the country code at the start of the phone number (e.g., +1 for US/Canada)
Make sure the phone number isn't too short or too long
Use only valid phone number characters (digits, spaces, hyphens, parentheses, plus sign)
For US phone numbers specifically, Shopify rejects the area code 555 and all area codes starting with 1 as those are not real phone numbers.
Excel formatting tip: When entering phone numbers that start with a plus sign (like +16308545555), Excel may interpret them incorrectly or apply unwanted formatting. To prevent this, prefix the phone number with a single quote character (e.g., '+16308545555). The quote tells Excel to treat the value as text, and it won't be visible when the file is processed.
DAT002 - Invalid Province Code
The province/state code provided in your import is not valid for the specified country. Shopify uses ISO 3166 standard province codes, and each country has its own set of valid province codes.
How to fix this:
Check that you're using the correct province code for the country
Refer to the complete list of valid country and province codes
Make sure the province code matches exactly (codes are case-sensitive)
Some countries don't have province codes - leave the province field empty for those countries
Common examples:
United States: Use 2-letter state codes like
CAfor California,NYfor New York,TXfor TexasCanada: Use 2-letter codes like
ONfor Ontario,BCfor British Columbia,QCfor QuebecAustralia: Use 2-3 letter codes like
NSWfor New South Wales,VICfor Victoria,QLDfor QueenslandUnited Kingdom: Leave province empty (UK doesn't use province codes in Shopify)
If you're importing addresses for a country that doesn't require province codes, simply leave the province column empty rather than trying to provide a value.
DAT003 - Invalid Country Code
The country value provided in your import could not be recognized. Shopify stores countries as ISO 3166-1 alpha-2 codes (two-letter codes). Altera accepts either the two-letter code or a full country name and converts recognized names to the matching code, but the value you provided matched neither.
How to fix this:
Use the correct 2-letter country code (e.g.,
USfor United States,CAfor Canada,GBfor United Kingdom) or a standard country name (e.g.,United States,Canada,United Kingdom)Refer to the complete list of valid country codes
Check for typos or non-standard spellings; unrecognized names are skipped rather than guessed
Avoid ambiguous abbreviations such as
UK(useGB)
Common examples:
US- United StatesCA- CanadaGB- United KingdomAU- AustraliaDE- GermanyFR- FranceJP- JapanMX- Mexico
Common mistakes:
Using
UKinstead ofGBfor United KingdomMisspelled or non-standard country names that can't be matched
Using a local-language country name (e.g.
Italiainstead ofItaly)
DAT004 - Invalid Email
The email address provided in your import is not in a valid format. Email validation is performed by Shopify, not Altera, so any email that Shopify rejects will produce this error.
How to verify: You can confirm whether an email is valid by trying to manually create a customer with it in the Shopify admin. If Shopify rejects it there, it will also be rejected on import.
How to fix this:
Ensure the email follows the standard format:
[email protected]Check for common formatting errors:
Missing
@symbolMissing or invalid domain extension (e.g.,
.com,.org,.net)Extra spaces before or after the email address
Invalid special characters
Multiple
@symbolsConsecutive or adjacent symbol characters such as
..,..., or.-
Common examples of valid emails:
Common examples of invalid emails:
Missing domain:
username@orusernameInvalid characters in the username or domain
Using commas or semicolons instead of periods
Missing top-level domain:
email@domainAdjacent symbol characters in the local part:
[email protected],[email protected],[email protected]
DAT005 - Invalid Numeric Value
The value provided is not a valid number or cannot be converted to a number. This error occurs when numeric fields contain text, special characters, or formatting that cannot be interpreted as a valid numeric value.
This error applies to various numeric fields across different import types including:
Product imports: Variant Grams, Variant Weight, prices, inventory quantities
Order imports: Line quantities, prices, transaction amounts
Other numeric fields throughout the application
Accepted number formats:
Numbers may be written with comma and period grouping, and are interpreted as follows:
When a value has both a period and commas, the period is the decimal separator and commas are treated as thousands separators:
1,234,567.89becomes1234567.89.When a value has only commas, a single comma is read as the decimal separator:
12,50becomes12.50. A value with more than one comma and no period (for example1,000,000) is rejected.A period is the decimal separator:
1234.56.
See DAT019 for a warning about values whose grouping is interpreted in a way you may not expect.
How to fix this:
Ensure the value contains only digits, commas, periods and an optional leading minus sign
Remove any currency symbols, percentage signs or other non-numeric characters
Remove any spaces, including spaces used as thousands separators
Make sure a value has at most one decimal separator
Common examples:
Invalid values:
$100(contains currency symbol)10%(contains percentage symbol)1 234.56(contains a space)1,000,000(multiple commas with no decimal point)1.2.3(more than one decimal point)abc(contains letters)
Valid values:
1001234.561,234,567.890.5
DAT006 - Invalid First or Last Name
The first name or last name provided in your import is not valid. Shopify has certain requirements for name fields that must be met for the import to succeed.
Common causes:
Name is empty or missing - First or last name fields cannot be left blank when they are required for the record you're importing
Name is too short - The name must be at least 1-2 characters long depending on the field requirements
Name contains emoji characters - Emoji characters are not supported in name fields for certain data types. Remove any emoji from the first or last name
How to fix this:
Ensure the name field is not empty if it's required
Remove any emoji characters from the name (e.g., 🎉, ❤️, ✨)
Make sure the name meets minimum length requirements
Check for invisible or special unicode characters that may have been copied from another source
Note: The support for emoji in name fields varies depending on what type of data you're importing. Some Shopify resources accept emoji in names while others do not. If you're seeing this error, the specific data type you're importing does not support emoji characters in the name field.
DAT007 - Required Field is Empty
A required field in your import is empty or blank. Shopify requires certain fields to have a value and will reject records where these fields are missing.
Common required fields include:
Product title
Variant price (for new variants)
Customer email (for new customers)
Order line item product
How to fix:
Review the field mentioned in the error and provide a valid value. If you're updating existing records and don't want to change a field, you can leave it empty only if it's not required for the operation.
DAT008 - Value Exceeds Maximum Length
The value provided is too long and exceeds Shopify's maximum character limit for this field.
Common character limits:
Product title: 255 characters
Product handle: 255 characters
Variant SKU: 255 characters
Variant barcode: 255 characters
Option name: 255 characters
Option value: 255 characters
Tags (individual): 255 characters
Metafield values: varies by type (typically 100,000+ characters)
How to fix:
Shorten the value to fit within the allowed character limit. If you're working with long text content, consider using a metafield with a larger capacity instead.
DAT009 - Value Below Minimum Length
The value provided is too short and does not meet Shopify's minimum length requirement for this field.
How to fix:
Provide a longer value that meets the minimum length requirement. Check the specific field's requirements in Shopify's documentation.
DAT010 - Value Already in Use
The value you're trying to use is already taken by another record. Shopify requires certain fields to be unique across your store.
Fields that must be unique:
Product handle (URL slug)
Variant SKU (within the store)
Variant barcode
Customer email address
Collection handle
Page handle
Blog handle
Discount code
How to fix:
Use a different value that isn't already in use
If you're trying to update an existing record, make sure you're providing the correct ID to identify it
If you want to merge with an existing record, use the UPDATE command instead of creating a new one
DAT011 - Referenced Record Not Found
The ID or reference you provided does not match any existing record in your Shopify store. This typically happens when trying to link to another resource that doesn't exist.
Common causes:
The ID belongs to a different Shopify store
The referenced record was deleted
There's a typo in the ID
Using a GraphQL ID format when a numeric ID is expected (or vice versa)
How to fix:
Verify the ID exists in your store by checking the Shopify admin
Make sure you're using IDs from the correct store
If referencing by handle or other identifier, ensure it matches exactly (case-sensitive)
For product variants, ensure the parent product exists first
DAT012 - Invalid Value
The value provided is not valid for this field. This is a general validation error that occurs when the input doesn't meet Shopify's requirements.
Common causes:
Incorrect format (e.g., invalid date format, malformed JSON)
Value contains invalid characters
Value doesn't match expected pattern
Logical inconsistencies in the data
How to fix:
Review the field's expected format in the documentation and ensure your value matches. Check for any special characters, encoding issues, or formatting problems.
DAT013 - Resource Limit Reached
You've reached a Shopify limit for this type of resource. Shopify imposes limits on various resources based on your plan.
Common limits:
Product variants: 100 per product (2,000 with Combined Listings)
Product options: 3 per product
Product images: 250 per product
Metafield definitions: varies by owner type
Tags per resource: varies
Locations: depends on plan
How to fix:
Review Shopify's resource limits for your plan
Consider upgrading your Shopify plan if you need higher limits
Reorganize your data to work within the limits (e.g., split products, use fewer variants)
Remove unused resources to free up capacity
DAT014 - Invalid Value for Field Type
The value provided doesn't match the expected format or constraints for this specific field type. This is common with metafields and fields that have specific validation rules.
Common causes:
Metafield value doesn't match its defined type (e.g., providing text for a number metafield)
Value doesn't match the options defined in a metafield definition
JSON metafield contains invalid JSON
Reference metafield points to wrong resource type
How to fix:
Check the field's type definition and ensure your value matches
For metafields, verify the value matches the metafield's type (number, date, JSON, etc.)
For metafields with validations, ensure the value is in the list of allowed options
For JSON fields, validate your JSON syntax
DAT015 - Invalid Data Type
The data type provided doesn't match what's expected for this field. This occurs when the wrong type of data is provided (e.g., text instead of a number).
Common causes:
Providing text where a number is expected
Providing a number where a boolean (true/false) is expected
Incorrect metafield type specified
Type mismatch in structured data
How to fix:
Check the expected data type for the field
Convert your value to the correct type (e.g., remove currency symbols from prices)
For boolean fields, use
true/falseor1/0For metafields, ensure the type matches the metafield definition
DAT016 - Non-Numeric Shopify GID
The Shopify resource GID contains a non-numeric identifier where a numeric ID was expected. Some Shopify resource types (such as Online Store theme JSON templates) use string-based identifiers like article, blog, or cart instead of numeric IDs.
Common causes:
Importing translations for Online Store theme JSON templates (e.g.,
gid://shopify/OnlineStoreThemeJsonTemplate/article?theme_id=...)Resource types that use handles or slugs instead of numeric IDs in their GIDs
How to fix:
This usually indicates an internal handling issue - please contact support if you encounter this error
Ensure the GID format matches what Shopify provides for the resource type
DAT017 - Invalid Date/Time Value
The date or time value in your import file is not valid. This usually means the timezone offset is outside the allowed range (±24 hours), or the value is otherwise malformed.
Common causes:
A date/time field contains a timezone offset that Python cannot represent (e.g.,
-2501instead of a valid UTC offset like-0500)The date/time value was corrupted or incorrectly formatted when the source file was created
A migration tool generated sequential or placeholder timezone offsets that are not real UTC offsets
How to fix:
Open your import file and locate the affected date/time column (e.g., "Email Marketing: Updated At", "Processed At", "Published At")
Replace any invalid timezone offsets with a valid UTC offset such as
-0500or+0000If the time zone is unknown, you can remove the offset entirely and just provide the date and time (e.g.,
2025-07-02 18:36:30)Re-upload the corrected file
DAT018 - Date Before Year 0001
A date or date/time value in your import file falls before the year 0001 (1 AD) once it is converted to UTC. Neither Shopify nor the underlying date library can represent a year earlier than 0001, so the value was rejected.
Common causes:
A placeholder or "zero" date such as
0000-00-00or0001-01-01that a migration tool exported for records with no real dateA date in the year 0001 combined with a positive timezone offset (e.g.
0001-01-01 00:00:00 +0500), which shifts the value to the previous year when expressed in UTCCorrupted or sentinel date values carried over from another platform
How to fix:
Open your import file and locate the affected date/time column
Replace the placeholder value with a real date, or clear the cell if the field is optional
Re-upload the corrected file
DAT019 - Ambiguous Number Format
This is a warning, not an error. The import is not blocked. A numeric value uses comma or period grouping that was read in a way you may not have intended, so it is worth double-checking the result.
This happens because a comma can mean two different things. When a value has no period, a comma is treated as the decimal separator, so 1,000 is read as 1 (one), not 1000 (one thousand). Mixed formats such as 1.000,00 are read the same way (the period is the decimal separator and the comma is removed), giving 1.
When you will see this:
A value like
1,000,12,345or1.500,00where the comma was treated as a decimal pointA value beginning with a decimal point such as
.5, where the leading point is dropped
How to fix this:
If the comma is meant to be a thousands separator, remove it (
1,000becomes1000) or write the decimal explicitly (1000.00)If the comma is meant to be the decimal separator, no change is needed, but confirm the imported value is correct
Standard thousands grouping with a decimal point (
1,234,567.89) is always unambiguous and never triggers this warning
DAT020 - Too Many Colons in Line Properties
A Line: Properties value has a line with more than one colon (:). Each line item property is written as key: value on its own line, separated by real line breaks, and the colon separates the key from the value. A line with two or more colons is ambiguous, so the row is rejected.
The most common cause is a file that contains a literal \n (a backslash followed by the letter n) instead of a real line break, which leaves two key: value pairs on the same line.
Example that fails:
Display_Name: Black\nWarranty: 2 Years(the\nis text, so this is one line with two colons)link: https://example.com(the value contains a colon)
How to fix this:
Put each property on its own line using a real line break (in a spreadsheet cell, press Alt+Enter or Option+Enter to add a line break)
If a key or value needs to contain a literal colon, escape it as
\:(for examplelink: https\://example.com)Make sure each line has exactly one unescaped colon separating the key from the value
DAT021 - Invalid Tags Command
The Tags Command column contains a value we don't recognize. This column controls how the tags in the row are applied to the object and must be one of MERGE, REPLACE or DELETE (case insensitive). The row was rejected so its tags are not applied incorrectly.
MERGE - adds the listed tags to any existing tags (this is the default when the column is left blank)
REPLACE - replaces all existing tags with the listed tags
DELETE - removes the listed tags from the existing tags
This commonly happens when a row-level command such as NEW or UPDATE is mistakenly entered in the Tags Command column instead of one of the values above.
How to fix this:
Check the
Tags Commandcolumn for typos or row-level commands (e.g.NEW) and replace them withMERGE,REPLACEorDELETELeave the
Tags Commandcolumn blank to use the defaultMERGEbehaviorRe-run the import once the column values are corrected
DAT022 - Invalid Reference Handle
A metafield reference value didn't start with gid://shopify/, so it couldn't be processed. Check that all reference handles match the expected gid://shopify/ format.
Previous code: OBJ004.
Import Command Codes
These codes indicate that a row was skipped during import based on the command used and whether the item exists in Shopify. Skipped rows are not errors - they are expected behavior when using NEW, UPDATE, or DELETE commands with items that don't match the command's requirements.
IMP001 - Item Already Exists
You used the NEW command to create an item, but an item with the same identifier already exists in your Shopify store. The row was skipped to prevent creating duplicates.
Why this happens: The NEW command is designed to only create items that don't already exist. When it finds a matching item, it skips the row rather than failing.
The same applies to a Variant Command of NEW on a product import: a variant row that matches an existing variant is left unchanged, and the product row reports which variants were skipped.
How to resolve:
Use MERGE instead if you want to update the existing item or create it if it doesn't exist
Use UPDATE if you only want to update the existing item
Use REPLACE if you want to delete the existing item and create a new one with the imported data
IMP002 - No Matching Item to Update
You used the UPDATE command to update an item, but no matching item was found in your Shopify store. The row was skipped because there's nothing to update.
Why this happens: The UPDATE command is designed to only update items that already exist. When it can't find a matching item, it skips the row rather than failing.
How to resolve:
Use MERGE instead if you want to create the item when it doesn't exist
Use NEW if you only want to create items that don't exist
Check that the ID or handle in your spreadsheet matches an existing item in Shopify
IMP003 - No Matching Item to Delete
You used the DELETE command to delete an item, but no matching item was found in your Shopify store. The row was skipped because there's nothing to delete.
Why this happens: The DELETE command is designed to only delete items that exist. When it can't find a matching item (perhaps because it was already deleted), it skips the row rather than failing.
How to resolve:
Verify that the item exists in your Shopify store
Check that the ID or handle in your spreadsheet is correct
The item may have already been deleted in a previous import or manually in Shopify
IMP004 - CSV File Not Found in ZIP
When importing a ZIP file containing multiple CSV files, the system could not find a CSV file matching the expected sheet name. This typically occurs when the ZIP file structure doesn't match what was detected during file analysis.
How to resolve:
Ensure all CSV files are at the root level of the ZIP file (not in subdirectories)
Verify that the CSV file names match the expected sheet names
Re-upload the ZIP file and try again
IMP005 - Unsupported File Format
The file format is not supported for this operation. Altera supports Excel (.xlsx), CSV, and ZIP files containing CSV files.
How to resolve:
Ensure your file is in one of the supported formats: Excel (.xlsx), CSV, or ZIP containing CSV files
If you have an older Excel format (.xls), save it as .xlsx first
Contact support if you believe your file format should be supported
IMP006 - Multiple Matching Items
The import row matched more than one existing item in your Shopify store, so the app could not safely determine which one to update, replace, or delete. The row was failed to avoid modifying the wrong item.
Why this happens: Some lookup columns (like Title for products or Name for orders) are not unique in Shopify. When the import file only includes a non-unique identifier and multiple items match it, the app cannot know which one you meant.
How to resolve:
Add the ID column to your import file and set it to the ID of the specific item you want to modify
For products, use the Handle column - handles are unique per store
Export the items first to see all matches, then pick the right ID or Handle
IMP007 - Content Truncated by Excel
A cell value is exactly 32,767 characters long, which is the maximum cell length in Excel. This strongly suggests the value was truncated by Excel, so Altera skips the row or field to avoid overwriting your Shopify data with incomplete content.
This affects Body HTML for products, pages, and blog posts as well as metafield values. When Body HTML is truncated the entire row is skipped. When a metafield value is truncated only that metafield is skipped.
Why a CSV file can still trigger this warning:
The 32,767 character limit applies whenever Excel reads or writes a cell, not just to .xlsx files. If you open a CSV in Excel, Excel truncates any long cells when it loads the file. Saving back to CSV from that point on preserves the truncated value, so the file extension is CSV but the content has already been cut. Altera detects the truncated length and warns even though the file is a CSV.
How to resolve:
Do not open the file in Excel at any point. Once Excel reads the cell, the long value is already truncated even if you save back to CSV.
Export directly from your source (Shopify, Altera, your CMS) as CSV and import that file as-is.
If you need to edit the file, use a tool that does not have the 32,767 character cell limit. Google Sheets allows up to 50,000 characters per cell, and a plain text editor has no limit at all.
If the content is genuinely longer than what your editor supports, split the value into smaller sections before importing.
IMP008 - Content Truncated by Google Sheets
A cell value is exactly 50,000 characters long, which is the maximum cell length in Google Sheets. This strongly suggests the value was truncated when the file was saved, so Altera skips the row or field to avoid corrupting data in Shopify.
This affects Body HTML for products, pages, and blog posts as well as metafield values. When Body HTML is truncated the entire row is skipped. When a metafield value is truncated only that metafield is skipped.
How to resolve:
Download your data as a CSV file directly from your source rather than copying it through Google Sheets.
IMP009 - No Object Returned for Row
Shopify accepted the request for this row but returned no object and no error, so Altera had nothing to record as the result. This is usually a transient condition that happens when the item is changed or removed in Shopify while the import is running (for example, an article that is updated by another process at the same moment).
Only the affected row is skipped. The rest of the import continues normally.
How to resolve:
Re-run the import. The row will usually succeed on a second attempt.
If the same row fails repeatedly, check that the item still exists in Shopify and is not being edited by another app or automation at the same time.
IMP010 - Timed Out Processing Row
Altera processes rows in parallel and uses a short-lived lock so that an image reused across many products is only uploaded once. This row waited too long for that shared upload (or another shared resource) to finish and gave up. This typically happens during large migrations where the same image appears on hundreds of products and is slow to process in Shopify.
Only the affected row is skipped. The rest of the import, including later steps, continues normally.
How to resolve:
Re-run the import. By then the shared image is already uploaded, so the row attaches it immediately and succeeds.
If many rows time out on a very large catalog, import in smaller batches so fewer products compete for the same image upload at once.
IMP011 - Import File Too Large to Process
Altera could not finish reading this import file because the process ran out of memory or stopped unexpectedly. This can happen with very large files (multiple gigabytes) when the server is busy with other large imports at the same time.
No rows from the file were imported. Your store data was not changed.
How to resolve:
Try running the import again. The server may have more memory available on the next attempt.
Split the file into smaller parts and import them one at a time.
If the error keeps happening with the same file, contact support and include the job ID.
IMP012 - Import File Processing Timed Out
Reading and preparing this import file took longer than the allowed time limit, so the import was stopped before any rows were processed.
No rows from the file were imported. Your store data was not changed.
How to resolve:
Try running the import again.
Split the file into smaller parts and import them one at a time.
If the error keeps happening with the same file, contact support and include the job ID.
IMP013 - Conflicting Commands Across an Item's Rows
Rows that belong to the same item have different values in the Command column, for example MERGE on one row and DELETE on another. Rows belong to the same item when they repeat the identifier of the row above them (ID, Handle, Email, Name, and so on) or leave it blank, or when a variant [ID] column on a product import matches them to the same product. Only one command can be applied to an item, so the item is not imported and no changes are made to it. The message lists the conflicting commands and the first row that uses each one.
This applies to every data type with multiple rows per item, such as products with variants, customers with addresses, orders with line items, and companies with locations. Translations are the exception: each translation row can carry its own command.
How to resolve:
Set the same command on every row of the item, or leave the
Commandcell blank on every row except the first.If you want per-row behavior, use the row-level command column for that data type instead, such as
Variant Commandon products. See IMP014 if the first row is the one that is blank.
IMP014 - Blank Command on the First Row of an Item
The Command cell is blank on the first row of an item, but another row of the same item has a command such as DELETE. The command for an item is read from its first row, and a blank cell means MERGE, so the later row's command would be ignored. Instead of silently merging the item, the item is not imported and no changes are made to it. The message names the row that has the command.
This applies to every data type with multiple rows per item, such as products with variants, customers with addresses, and orders with line items. Translations are the exception: each translation row can carry its own command.
How to resolve:
Put the command on the first row of the item, or set the same command on every row.
If the rows of an item aren't next to each other, sort the file by its identifier column first so the row that carries the command is the first row of its group. Blank cells on the rows below a filled first row are fine.
Job Codes
Codes related to creating and managing import or export jobs.
JOB001 - Concurrent Job Limit
In order to provide a reliable service to all users you may have a limit to the number of jobs you can run at the same time. You can either cancel another job or wait for it to finish before starting a new job.
JOB002 - Maximum Scheduled Jobs
You have reached the maximum number of scheduled jobs allowed by your plan. To create a new scheduled job, you'll need to either disable an existing scheduled job or upgrade your plan for a higher scheduled job limit.
JOB003 - Export Row Limit Reached
Your export has reached the maximum number of rows allowed by your current plan. The export was completed up to this limit, but additional data could not be included in the file.
To export more data, you can:
Upgrade to a higher plan that supports larger exports
Use filters to reduce the amount of data in your export
Split your export into multiple smaller exports with different date ranges or filters
Contact support if you need assistance with large data exports
The exported file will contain a message indicating where the row limit was reached.
JOB004 - Single CSV Format Requires One Object Type
The single CSV export format only supports exporting one object type at a time. To export multiple object types, use the ZIP format (matrixify_zip) instead, which creates separate CSV files for each object type in a single archive.
JOB005 - Schedule Not Configured
You cannot enable scheduling for a job that does not have a schedule configured. Please configure the schedule settings (start time and repeat interval) before enabling scheduling.
JOB006 - Data Transformation Failed
A step in the data transformation recipe could not be applied to your export. The export completed using the original data without the transformations applied, and the file was not delivered to a remote connection.
The message on the job names the step that failed by its position and type in the recipe, for example Transformation step 2 (Copy column) failed. When the step can tell why, the message says so. The most common reason is a column the recipe refers to that is not in the export, for example because the export's field selection does not include it, or because the column has a different name in this data type.
To resolve this:
Open the transformation recipe and find the step named in the message
Check that every column the step refers to is part of the export (compare against the export's field selection or a previous export file)
Try running the export without transformations to verify the base export works correctly
If the message gives no reason, the step failed unexpectedly. Please contact support with your job ID so we can look at the details.
JOB007 - Invalid Export Configuration
The export configuration sent to the API is missing or contains invalid values, such as an unsupported filter relation or field name. The error message lists which part of the configuration failed validation and the accepted values.
To resolve this:
Check the error message for the configuration path that failed and correct the value
Compare your filter relations and field names against the Altera CLI overview and the field reference articles for the objects you are exporting
JOB008 - Unknown Export Filter
An export was created with a filter column that the selected data type does not have, for example a typo such as Bogus or a wrong-case key such as Handle instead of handle. Altera rejects the export instead of running it, because a filter it does not recognize cannot be applied and the export would otherwise contain the whole store.
The error message lists the valid filter columns for the data type.
To resolve this:
Use one of the filter columns listed in the error message. Filter keys are lowercase slugs such as
handle,created_at, orstatusIn the Altera CLI, run
altera ref filters <resource>to see the filters for a resourceIn an MCP client, call
ref_filtersfor the resource
JOB009 - No Output File Produced
The export finished writing its data, but no output file path was recorded, so the job could not deliver the file or run the steps that follow it, such as data transformations and remote uploads. This is an internal error.
Run the export again. If it keeps happening, contact support with your job ID.
Previous code: TSK001.
JOB010 - No Objects Selected for Export
The export job has no object types selected, so there is nothing to export. Edit the job and select at least one object type, such as Products or Orders, then run it again.
Previous code: TSK002.
JOB011 - Unexpected Job Failure
The job stopped because of an unexpected error before it could finish. This can happen during a temporary service disruption, such as a Shopify outage, while the job is starting up or counting your data.
To resolve this:
Wait a few minutes and run the job again
Check the Shopify status page if the problem continues
Contact support with your job ID if the job keeps failing
Previous code: TSK003.
JOB012 - Results File Could Not Be Written
The import stopped at its last step, where the results file (a copy of your spreadsheet with the Import Result and Import Comment columns) is written. Every row that was imported before that step is already in your store, so do not import those rows again. This can happen when the spreadsheet carries a workbook setting that the file library rejects, even though Excel opens the file without complaint.
If the run was cancelled or reached your plan's row limit before this step, the sheets after that point were not imported.
To get a results file:
Open the spreadsheet in Excel or Google Sheets, save it as a new
.xlsxfile, and import that copyOr export the data type you imported to check the values in your store
Contact support with your job ID if it keeps happening
Previous code: TSK004.
JOB013 - Job Run Does Not Exist
A background task was started for a job run that no longer exists. This usually means the job or run was deleted while the task was waiting to start. No data was changed.
If you did not delete the job, run it again. If it keeps happening, contact support with your job ID.
Previous code: TASK001.
JOB014 - Unknown Export Type
When trying to export objects, the provided object type wasn't recognized. Ensure you're using a valid object type (e.g., products or orders).
Previous code: OBJ001.
JOB015 - No Matching Type
Sheet analysis didn't find a matching type for the label. Double-check your sheet configurations or labels before importing.
Previous code: OBJ002.
JOB016 - Unknown Import Type
You tried to import using an object slug that isn't supported. Confirm it's a valid import type (e.g., products, customers).
Previous code: OBJ003.
JOB017 - Unknown Object Type
You attempted to export using a data type the system doesn't recognize. Please try to reconfigure the job and run it again.
Previous code: WRT001.
JOB018 - Unknown Export Type
The export format is not recognized. Currently Altera only supports CSV and Excel files in the Altera/Matrixify format.
Previous code: WRT002.
JOB019 - Google Shopping Feed Only Supports Products
The export uses the Google Shopping Feed format, but includes an object type other than products. The Google Shopping Feed format can only be produced from product data.
Edit the export so that Products is the only selected object type, or choose the CSV or Excel format for the other object types.
Previous code: WRT003.
