## TL;DR
Profile picture uploads fail for boring reasons: the file is too big, the format is not accepted (iPhone HEIC photos are the classic), or an extension interferes with the upload request. Check the file against the stated limits first, convert HEIC to JPEG if needed, and try a private window. The upload endpoint is rarely broken; the file or the browser usually is.

## The query

```text
cannot upload a profile picture: common causes
```

## Use this when

- Users report profile picture upload failures
- Upload QA and troubleshooting
- Writing media help documentation
- Avatar or photo upload tickets

## Not for

- Building upload infrastructure
- Image processing pipelines
- CDN configuration
- Storage quota management

## Steps

### 1. Check the file against the limits

Size limit and accepted formats, stated wherever the upload happens. Most failures are files over the limit or formats outside the list. State the limits explicitly; "invalid file" errors without the limits listed are a UX bug to report.

Expected output: file confirmed within or outside limits.

### 2. Handle the HEIC problem

iPhones save photos as HEIC by default, and many uploaders do not accept it. The user sees "invalid format" for a normal photo. Fix: convert to JPEG (the phone can do it on share, or any converter), or accept HEIC server-side.

Expected output: HEIC identified or ruled out.

### 3. Try a private window

Ad blockers and privacy extensions sometimes block upload requests, especially to a different upload domain. Private window test takes 30 seconds and rules out the whole category.

Expected output: works in private window or still fails.

### 4. Check the network path

Corporate networks and VPNs sometimes block uploads to storage domains. Try off-VPN or mobile data. Large files on slow connections time out; the error looks like a failure but it is a timeout.

Expected output: network cause confirmed or ruled out.

## Template: the troubleshooting reply

```text
Let us get that photo uploaded, [Name]:

1. What is the file: format and size? We accept [formats] up to [size]. If it is a photo straight from an iPhone, it may be HEIC format, which we do not take yet. Converting it to JPEG first fixes that.
2. Try the upload in a private/incognito window. Browser extensions sometimes block uploads.
3. If it is a large file on a slow connection, it may be timing out. Try a smaller version or a faster network.

Tell me the format and size and what happens when you try, and I will pinpoint it.
```

## Variant phrasings

### profile photo upload failed

Steps 1 and 2. Limits, then HEIC.

### avatar will not upload

Steps 1 through 3. Same ladder, shorter.

### invalid image format error

Step 2. Format mismatch, usually HEIC or TIFF.

## Why it works

Upload failures feel technical but are usually file problems. Checking the file first resolves most tickets without touching infrastructure, and the HEIC callout matters because it affects a huge share of mobile users who did nothing wrong.

## Edge cases

- The error message names no limits: report that as a bug. Users cannot comply with unstated rules.
- Animated formats (GIF, WebP): policy decision. State it.
- The upload succeeds but the picture does not update: CDN or app cache. Hard refresh or wait out the cache TTL.
- NSFW or policy-violating images: the uploader may reject silently. Have a clear policy message, not a silent fail.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_89uGca7MTh0IzmO73Wy81A
