Shopify rejects file names ending in thumb, icon or large

Shopify file uploads reject names ending in pico, icon, thumb, testing, small, compact, medium, large or grande. A Python rename step for batch outputs.

4 min readSume
All posts

Shopify's file upload rules say a file name cannot end in pico, icon, thumb, testing, small, compact, medium, large or grande. A batch that names outputs after a prompt or a size, such as chair-large.jpg, can hit that, so add a rename step before upload.

The rule

The Shopify Help Center page on file uploads, read on 2026-10-03, lists these suffixes among its image rules.

Shopify file name suffixes that are not allowed (read 2026-10-03)
SuffixExample name that would trip it
picolamp-pico.jpg
iconlamp-icon.png
thumblamp-thumb.jpg
testinglamp-testing.jpg
smalllamp-small.jpg
compactlamp-compact.jpg
mediumlamp-medium.jpg
largelamp-large.jpg
grandelamp-grande.jpg

Why batches trip on it

Names like large, small and thumb are natural labels for size variants, and a script that writes one file per ratio or per scale will reach for them. The page does not say whether the check looks at the name before or after the extension, so the safe approach is to avoid both.

Name the file when you download it

The name you upload under is the name you give the file when you save it. Pick it from your own SKU and variant, then check it against the list.

import re

BLOCKED = ("pico", "icon", "thumb", "testing", "small", "compact", "medium", "large", "grande")

def safe_name(stem, ext):
    stem = re.sub(r"[^a-z0-9]+", "-", stem.lower()).strip("-")
    name = f"{stem}.{ext}"
    # Check the stem and the full name, since the page does not say which is tested.
    while stem.endswith(BLOCKED) or name.endswith(BLOCKED):
        stem = f"{stem}-v1"
        name = f"{stem}.{ext}"
    return name

for stem in ["Lamp Large", "lamp-thumb", "lamp-front", "lamp icon"]:
    print(stem, "->", safe_name(stem, "jpg"))

A naming scheme that avoids the problem

Build names from fields that cannot collide with the list:

  • SKU first, then a view word such as front, side or detail.
  • A two-digit index at the end, for example sku-1042-front-01.jpg.
  • Keep the ratio or scale in metadata, not in the file name.
  • Run the check on every name in a batch.

Generating the images

The Image API returns Sume-hosted URLs in data[].url. Download each one, save it under the checked name, and keep the Sume job id in your own records so a rename does not break traceability.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume