Why Signal won't send your photos or videos, and how to fix it

Published: October 7, 2026 · Updated: October 8, 2026

When Signal can't send photos or videos, the cause is almost always one of four things: missing media permission, not enough free storage, a file that's too large, or a weak connection that can't finish the upload. Text messages send fine because they're tiny. A photo or video needs permission to be read, space to be processed, and a solid upload. Run the checklist below in order and you'll find your cause in a few minutes.

Checklist for diagnosing why Signal won't send a photo or video: media permission, storage space, file size, and network upload

The 60-second checklist

Most media failures are fixed by these four checks. Do them in order before anything else:

Illustration of the sixty-second media checklist
Sixty seconds, four checks - most media failures end here.
  1. Grant full media permission

    Settings → Apps → Signal → Permissions → Photos and videos → Allow all. On Android 13 and newer, partial access ("Select photos") can make specific photos fail silently. Details in permissions.

  2. Free up storage

    If your phone has less than ~1 GB free, Signal may fail to process and attach media. Delete downloads, clear app caches, or move files off the phone.

  3. Shrink the file

    Long or 4K videos are the classic failure. Trim the video in your gallery app or send a shorter clip first to test. See file size.

  4. Fix the connection

    Toggle airplane mode on and off, then try again on a different network (Wi-Fi vs mobile data). Uploads die on weak connections while text still sends.

If none of those fix it, the diagnostic table below matches your exact symptom to the cause.

Diagnostic table: symptom to fix

Illustration mapping media symptoms to their fixes
Match your symptom to the lane - each lane has one fix.
What you seeLikely causeFix
Photo picker opens but chosen photos never attachPartial media permissionGrant "Allow all" under Photos and videos
Camera works inside Signal, gallery attach failsPermission gap (camera allowed, media not)Same fix: allow full media access
Short clips send, long videos spin foreverFile too large / weak uploadTrim the video, try a stronger network
"Couldn't process attachment" errorLow storage or corrupt fileFree up space, test the file in your gallery
Text sends fine, every photo failsStorage or permissionWork through the checklist
Media sends to one person, fails to anotherTheir side (old app, dead session)Recipient-side fixes
Everything fails after an updateCorrupt install or old buildUpdate to the latest build, clear cache
Only GIFs or one format failFormat quirkConvert or re-save the file

Media permissions

This is the single most common cause, and it trips people up because everything else in Signal works. Since Android 13, apps can ask for partial media access ("Select photos and videos") instead of full access. If you picked "Select photos" during setup, Signal can only see the photos you chose back then. Newer photos simply don't attach, and the app may show nothing useful to explain it.

Fix it properly:

  1. Open app permissions

    Go to Settings → Apps → Signal → Permissions → Photos and videos.

  2. Choose "Allow all"

    Switch from "Select photos and videos" (or "Don't allow") to Allow all. This is the option Signal needs to attach anything from your gallery.

  3. Check the camera too

    While you're there, confirm Camera permission is also allowed if you use Signal's in-app camera.

  4. Restart Signal

    Close the app fully (swipe it away) and reopen it so the new permission takes effect.

A telltale sign of the permission problem: the photo picker opens inside Signal but shows an empty gallery, or chosen photos vanish instead of attaching. If the picker works fine, move on to storage.

Storage space

Before Signal sends a photo or video, it processes it on your phone: decrypting your camera output, compressing, encrypting for the recipient. All of that needs working space. When free storage drops very low (roughly under a gigabyte, less on phones with heavy gallery apps), the processing step fails and the send dies.

If storage was the problem, sending usually works again immediately after you free space. No restart needed.

File size and format

Text messages are a few bytes. A 3-minute 4K video can be hundreds of megabytes. There is a practical ceiling on what Signal can attach and upload, and a long high-resolution video is the file that hits it. You don't need an exact number. The rule is simple: if short clips send and long videos don't, the file is too big for the current conditions.

Practical fixes, easiest first:

On formats: Signal handles the common photo and video formats your phone produces. If one specific file refuses to send while everything else works, the file itself is suspect. Convert it (for example, re-export the video as MP4 or the photo as JPEG) and try again. And if a file won't even play correctly in your own gallery, see corrupted files: no app can send a broken file.

Network and upload problems

Here's the pattern people miss: text messages send on almost any connection, but a photo upload needs sustained bandwidth. On a weak or flaky connection, your texts fly while photos spin and fail. That doesn't mean Signal is broken. It means the pipe is too thin.

Note: Signal's "Always relay calls" setting helps with voice and video calls on restrictive networks. It does nothing for media uploads. If someone suggested relay mode for photo failures, that's a mix-up. The call setting is covered in the relay calls guide.

Corrupted or broken files

Sometimes the problem is the file, not Signal. A video that stopped recording mid-crash, a photo from a failing SD card, a download that never finished. These files look normal in the gallery grid but fall apart when any app tries to actually use them.

Test it in 30 seconds:

Screenshots deserve a special mention: if a screenshot fails to send, it's rarely the screenshot. Check permissions and storage first. But screenshots taken inside apps that block capture (banking apps, some DRM video) can come out black or empty, and Signal can't send an empty image.

Clearing the cache

Signal's cache holds temporary processing data: thumbnails, partial uploads, transcoded media chunks. Over time it can corrupt and start failing every new attachment. Clearing it is safe and takes ten seconds:

  1. Open Signal's storage settings

    Settings → Apps → Signal → Storage.

  2. Tap "Clear cache"

    Tap Clear cache, and only that. Do NOT tap "Clear data" or "Clear storage": that wipes the app's local state and logs you out.

  3. Restart Signal and retry

    Open Signal, open the chat, and attach the media again.

Your chats, contacts, and settings are untouched by a cache clear. If clearing the cache fixes it, the problem was stale temporary data. Nothing to worry about.

When it's the other person's phone

Run this test before you go deeper: send the same photo to a different contact. If it sends fine to them, your phone is innocent. The problem is on the recipient's side. This is more common than people expect:

The key insight: media failing for one contact is a them problem. Media failing for every contact is a you problem. Don't reinstall your app for someone else's issue.

Last resorts

If you've worked the checklist, the diagnostic table, cache, and the recipient test, and media still fails for everyone, the escalation path is:

  1. Update to the latest build

    Install the newest website build from signal.org/android/apk (currently 8.29.3). Media-handling bugs do get fixed in updates.

  2. Back up, then reinstall

    Back up your chats first, then uninstall and reinstall Signal. A reinstall clears corrupted local state that a cache clear can't reach. Without a backup, your message history is gone. Back up first.

  3. Check Signal's status

    Rare, but real: during a Signal service incident, media uploads fail for everyone while text squeezes through. Check support.signal.org before doing anything drastic.

Don't start with a reinstall. Nine times out of ten, a media failure is permissions, storage, file size, or network: all fixable without touching your chat history. Reinstall is the last step, never the first.
Download the official Signal APK

from Signal's official site, file hosted by Signal, not by us

Frequently asked questions

Why do my texts send but photos fail?

Text messages are tiny and need almost no bandwidth, permission, or processing. A photo needs media permission to be read, free storage to be processed, and a solid connection to upload. The usual culprit is one of those three, not Signal itself.

Signal's camera works but the gallery picker doesn't. Why?

The in-app camera uses the Camera permission; attaching from the gallery uses the Photos and videos permission. Granting one doesn't grant the other. Go to Settings → Apps → Signal → Permissions and allow both.

Can I send full-size photos without compression?

Yes. Attach the photo through the paperclip menu as a document instead of as a photo. Documents send uncompressed at original quality. They still have to upload, so this helps with quality, not with network problems.

Does clearing Signal's cache delete my chats?

No. Clear cache only removes temporary processing data. Your chats, contacts, and settings stay exactly as they are. Just make sure you tap "Clear cache" and not "Clear data".

Videos under a minute send, longer ones fail. What's the limit?

There is a practical ceiling, but what matters more than any number is the combination of file size and connection quality. Trim the video, export at a lower resolution, or split it into shorter clips. Any of those fixes it.

Photos send to everyone except one person. Is my app broken?

No. If it works for others, your app is fine. Their app is probably outdated, their phone is out of storage, or your encryption session with them is stale. Ask them to update, or reset the secure session in your conversation with them.

Related: messages stuck on one check, the master sending guide, relay calls on restrictive networks, backing up before a reinstall, and the troubleshooting hub.