Why App Store Connect rejected your screenshot: IMAGE_ALPHA_NOT_ALLOWED

The short answer: your PNG declares an alpha (transparency) channel, and App Store Connect refuses any screenshot that does, even if every pixel is fully opaque. ASC checks the file's color type, not what the image looks like. Flatten the PNG to RGB without alpha (color type 2), or convert it to JPEG, and the upload goes through.

Updated July 2026

What actually triggers the error

A PNG file's IHDR header contains a one-byte color type that declares the pixel format for the whole file:

Color typeFormatASC verdict
0GrayscaleAccepted
2RGB (truecolor, no alpha)Accepted. This is the target.
3Indexed paletteAccepted unless a tRNS transparency chunk is present
4Grayscale + alphaRejected: IMAGE_ALPHA_NOT_ALLOWED
6RGBARejected: IMAGE_ALPHA_NOT_ALLOWED

App Store Connect looks at that byte. If it says 4 or 6, the upload is rejected regardless of whether any pixel is actually transparent. That's why "but my screenshot has no transparency!" doesn't help: the file format says otherwise.

Where the alpha channel sneaks in

Almost every convenient export path writes RGBA (color type 6) by default:

The fastest fix: in your browser, free

The Alpha Channel Fixer flattens your PNG and re-encodes it with a purpose-built encoder that writes color type 2 (RGB, no alpha), then parses its own output to prove the alpha channel is gone before you download. Your file never leaves your browser: no upload, no server, no account. Drop the rejected PNG, download the fixed one, re-upload to ASC.

Fix a PNG now

Manual fixes on macOS

Preview (no install)

  1. Open the PNG in Preview.
  2. File → Export.
  3. Untick the Alpha checkbox and save.

Fine for one file; tedious for thirty screenshots across locales.

sips (built into macOS)

sips can convert to JPEG, which structurally cannot carry an alpha channel. ASC accepts JPEG screenshots:

sips -s format jpeg shot.png --out shot.jpg

Caveat: JPEG is lossy; crisp UI text can pick up compression artifacts.

ImageMagick (keeps PNG, batch-friendly)

magick shot.png -background black -alpha remove -alpha off shot-flat.png
# whole folder:
for f in *.png; do magick "$f" -background black -alpha remove -alpha off "flat-$f"; done

Swap black for whatever your composition's background color is; it only shows through where pixels were genuinely transparent.

In code (Core Graphics)

If you generate screenshots programmatically on Apple platforms, render into a bitmap context created without an alpha channel (CGImageAlphaInfo.noneSkipLast won't do for PNG export; draw into an opaque context and write RGB). The principle is the same everywhere: composite onto an opaque background, then encode a format that has no alpha channel to declare.

Verify before you re-upload

Don't trust the export dialog; check the file. Fast check with Python:

python3 -c "print('color type', open('shot.png','rb').read()[25])"
# 2 = RGB, good. 6 = RGBA, ASC will reject it.

Or drop the file into the free size checker, which reads the color type and validates the dimensions in the same pass.

Related

Never see this error again.

ScreenshotPunch generates App Store screenshots with editorial art direction, exported flat (color type 2) and correctly sized from the start. Coming soon.

About ScreenshotPunch