# Why can't I add an image or attachment to a step?

> An image will not insert, an attachment will not upload, or every recipient gets the same file: the size limits, plain-text mode, and per-contact files.

**Three different problems share this symptom. Plain-text mode removes the tools entirely, files above the size limit are refused, and an attachment on a step is the same file for every recipient; there is no per-contact attachment, which is what people usually actually want.**

_Status: Reviewed – written against Reply's product documentation on 2026-09-21, not yet confirmed against the running product._

## Quick fix

1. Check **Plain text sending mode** in the sequence's settings. While it is on, the image and formatting tools are hidden. See [Why does my email not look the way I built it?](/troubleshooting/email-does-not-look-right/).
2. Check the file's size. Large files are refused, and image files are usually far larger than they need to be.
3. If you want each recipient to get a *different* file, stop; a step attachment is one file for everyone. See the resolution below.
4. For a large document, link to it instead of attaching it.
5. Send yourself a test and confirm the file arrives and opens.

Didn't work? [Contact Reply support](https://support.reply.io/); the team can check your account directly.

## Symptom

The image button is missing, an upload fails or hangs, the attachment does not arrive, or it arrives but is the wrong file for that person.

## Most likely causes

| Cause | How to recognize it |
| --- | --- |
| **Plain-text sending mode is on** | The image and formatting tools are not there at all. A per-sequence setting |
| The file is too large | The upload is refused or never completes. Common with photographs and PDFs exported at print quality |
| You want a different file per recipient | The attachment works, but everyone receives the same one. This is the design, not a fault |
| The image was pasted rather than inserted | It appears in the editor and not in the received email, because it was never uploaded |
| A large attachment hurts delivery | It sends, but placement drops – attachments on cold mail attract filtering |

## Diagnostic checklist

1. **Check plain-text mode first.** It explains a missing button at once and costs nothing to check.
2. **Check the file size** before assuming anything is broken. Resize an image to the width it displays at rather than uploading the original.
3. **Decide what you actually need.** "Attach a file" and "attach a *different* file to each person" are different problems, and only the first is a step attachment.
4. **Insert images, do not paste them.** A pasted image often references somewhere the recipient cannot reach.
5. **Send a test to yourself** and open it in a mail client, not in Reply.

## Resolution

### Plain-text mode is on

Turn it off in the sequence's settings and reload the page, or keep plain text and link to the file instead. For cold outreach, a link usually performs better than an attachment anyway.

### The file is too large

Resize images to the dimensions they actually display at; a photo straight from a camera is many times larger than any email needs. For documents, export at screen quality, or host the file and send a link.

### You need a different file for each recipient

A step attachment is one file for everyone. There are two workable approaches:

- **Link instead of attach.** Put a link in the step and vary it with a variable, so each contact receives their own address. This is the only approach that stays automatic.
- **Attach per contact manually.** Open the contact in the sequence's preview and attach that person's file individually. Reliable, but it does not scale.

### The image was pasted

Delete it and insert it with the image tool so it is uploaded. Then test; a pasted image frequently shows in the editor and is blank for the recipient.

## Verification

Send a test to an address on another provider, open it there, and confirm the image renders and the attachment opens. Checking inside Reply proves only that the upload worked.

## Prevention

- Decide plain-text versus formatted when you create the sequence.
- Resize images before uploading rather than after something fails.
- Prefer a link to an attachment on cold outreach: smaller, safer for placement, and trackable.
- If per-contact files are part of the plan, design for a variable link from the start.

## FAQ

### Can I attach a different file for each contact automatically?

No. A step attachment is one file for everyone. Use a link built from a variable if it has to differ per contact.

### Why does my image show in the editor but not in the received email?

It was pasted rather than inserted, so it was never uploaded. Insert it with the image tool.

### Do attachments affect deliverability?

They can, particularly on a domain without much sending history. A link is the safer choice for cold outreach.

## Still stuck? Contact Reply support

If these steps didn't solve the problem, the Reply support team can look at your
account directly. Open the [Reply Help Center](https://support.reply.io/) and send
the team a message.

To get an answer faster, include:

- what you are attaching, and its file size
- whether plain-text sending mode is on for that sequence
- whether the problem is inserting, sending, or the file being the same for everyone
- which sequence and step

Don't send passwords, API keys, or access tokens, and don't attach customer files.

## Related

- [Why does my email not look the way I built it?](/troubleshooting/email-does-not-look-right/)
- [Why was a variable not replaced in an email?](/troubleshooting/variable-was-not-replaced/) – for per-contact links
- [Why are my emails going to spam?](/troubleshooting/emails-going-to-spam/)

## Build with Reply

- REST API: [Attachments](https://docs.reply.io/api-reference/introduction) – upload and reference files
- MCP: [docs.reply.io/mcp](https://docs.reply.io/mcp/overview) – review step content from an assistant
