# Error: 554 Transaction failed

Source: https://catalystgroup.gg/docs/email-delivery/error-554-transaction-failed/
Updated: 2026-10-19 · By Duane Garner

The server permanently refused the message, usually for spam, blocklist or authentication reasons. Read the detail, fix the cause, then resend.

> **Shown by SMTP-based sending (Other SMTP, Zoho Mail, the backup SMTP transport); some API services pass it on:** The test result or the error log shows a reply starting with `554`, for example `554 Transaction failed`, `554 5.7.1 Message rejected` or `554 Message rejected due to spam`.

 

This article is for site owners who see a 554 reply. It most often comes through **Other SMTP** or **Zoho Mail**, and some API services include 554 in their own error text when a receiving server refuses a message.

 

## What this error means

 

Reply code 554 is a general, permanent failure. The server decided not to accept this message and will not change its mind if you resend it unchanged. It is the reply servers use when no more specific code fits, or when they do not want to say exactly which check failed. The text after the code is your best clue.

 

## Common causes

 
- The message was judged to be spam, because of its content, links or attachments.
- Your sending IP, or a domain linked in the message, is on a blocklist the server uses.
- The **From Email** domain fails SPF, DKIM or DMARC checks, and the domain's DMARC policy tells servers to reject.
- The server refused unauthenticated or relayed mail, for example with **Authentication** off.
- The message breaks a policy, such as a forbidden attachment type or a size limit.
- Your provider has restricted your account because of complaints or bounces.

 

## How to fix

 
1. Read the full reply
  Open the error in **CRM-NG SMTP → Tools → Debug Events**. Words like "spam", "blocked", "policy", "DMARC" or a link to a blocklist tell you which path to take.
2. Check authentication
  For **Other SMTP**, go to **CRM-NG SMTP → Settings → General** and make sure **Authentication** is on with the right **SMTP Username** and **SMTP Password**.
3. Fix SPF, DKIM and DMARC
  Publish the records your mail provider gives you for the domain in **From Email**. Turn on **Force From Email** so every message uses that domain.
4. Check blocklists
  Look up your sending IP and your domain on a public blocklist checker. Follow each list's removal steps, or ask your host or provider.
5. Review the content
  Remove URL shorteners, odd attachments and spammy wording from the message templates that failed.
6. Send a test
  Go to **CRM-NG SMTP → Tools → Email Test**, fill in **Send To** and press **Send Email**.

 

## Verify it worked

 

The test page shows "Test email sent successfully! Check your inbox to confirm delivery." On the same page, the **Deliverability and domain authentication** section should show SPF and DMARC records found.

 

## Notes

 
- Sending directly from a shared web server is a frequent cause of blocklist problems. A dedicated mail service usually solves it.
- The [backup SMTP transport](https://catalystgroup.gg/docs/email-delivery/backup-smtp-transport/) does not retry permanent recipient errors.

 

## Related

 
- [Other SMTP mailer guide](https://catalystgroup.gg/docs/email-delivery/mailer-other-smtp/)
- [Zoho Mail mailer guide](https://catalystgroup.gg/docs/email-delivery/mailer-zoho/)
- [Emails landing in spam](https://catalystgroup.gg/docs/email-delivery/emails-landing-in-spam/)
- [DNS records for email](https://catalystgroup.gg/docs/email-delivery/dns-records/)
- [Error: 550 Requested action not taken: address does not exist or was rejected](https://catalystgroup.gg/docs/email-delivery/error-550-recipient-rejected/)
- [Troubleshooting email delivery](https://catalystgroup.gg/docs/email-delivery/troubleshooting/)
