**TL;DR:** A 422 from the send endpoint names the broken field in its message. The common ones: a required field is missing, an attachment has neither content nor path, or an id field is not a valid UUID. Confirm the cause: read the error message in the response body. 3. invalid_attachment: "Attachment must have either a content or path." Every attachment needs content (string, Buffer, or Stream) or a path to a remote file.

## The error

```text
POST to the emails endpoint returns 422 instead of an email id.
```

## The fix

1. Confirm the cause: read the error message in the response body. Resend's error schema puts the specifics in the message, including which field failed and why. Do not guess; the message lists the missing fields.

2. missing_required_field: the request body is missing one or more required fields. The message names them; add each one.

3. invalid_attachment: "Attachment must have either a content or path." Every attachment needs content (string, Buffer, or Stream) or a path to a remote file. Attachments with only a filename, or with neither, get this error. For larger files prefer path to a remote resource.

4. invalid_parameter / missing_required_parameter: a parameter must be a valid UUID, or a required parameter is absent. Check the value format and that the parameter is present.

5. Note the nearby 400: validation_error ("An error was found with one or more fields") is the same family with more detail in the message.

6. Verify: re-send and confirm a 200 with an email id. If you build payloads programmatically, log the exact body you sent so the next 422 is a one-line diagnosis.

## When to use this

- You are seeing this exact error message; match the block above, not just part of it.
- The failing call matches the scenario in the title: Resend 422 on send.
- You want the fastest verified fix before digging through logs.

## When not to use this

- Your error text differs from the block above; close cousins often have different causes.
- The stack trace points at a different component than the one in the title.
- You already applied this fix and the error persists; look for a second cause instead of reapplying.

## Compatibility

- Not pinned to a specific version; follows current Resend behavior.