> ## Documentation Index
> Fetch the complete documentation index at: https://ahasend.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> AhaSend stores all message data in the EU. See /facts.
> The API base URL is https://api.ahasend.com. Send the API key in the Authorization: Bearer header. See /api-reference/authentication.
> Use send.ahasend.com for SMTP in the EU, or send-us.ahasend.com as a US connection point forwarding to the EU. Ports 25, 587 and 2525 use STARTTLS. Port 465 is not supported. See /smtp.
> For send-only integrations, create an API Key v2 under Credentials → Add and scope it to messages:send:{your-domain}. See /send-api/credentials and /api-reference/scopes.

# Email Troubleshooting and FAQ

> Fix common AhaSend email problems: domains that do not verify, messages delivered but missing, port 465 failures, API 403 errors and suppressed recipients.

AhaSend troubleshooting starts with the failed step: DNS verification, authentication, message acceptance or recipient delivery; this FAQ points you to the right checks.

## Why Is My AhaSend Domain Not Verifying?

Check that the records are saved at the provider serving your current nameservers, with the exact full names, types and values shown in AhaSend. A repeated domain suffix, proxied CNAME or duplicate SPF record can break verification. Use your [provider guide](/docs/dns), then **Check DNS**. See [domain setup](/docs/domains) for propagation timing and required records.

## Why Does the API Return 403 Domain Not Allowed?

The key must belong to the right account and allow the domain in the message's From address. Check the account ID, verified sender and [key scope](/docs/api-reference/scopes). A domain-scoped key for `example.com` does not automatically authorize a different sending domain. Follow [send-only key setup](/docs/send-api/credentials) and read the actual [API error message](/docs/api-reference/errors).

## Why Does SMTP Port 465 Not Work?

AhaSend does not support implicit TLS on port 465. Use the STARTTLS settings on [SMTP](/docs/smtp), then authenticate with an SMTP username and password. An API key is not an SMTP password. If the connection times out before a server greeting, check outbound network access on your host.

## Why Was My Email Delivered but Not Received?

Delivered means the recipient server accepted the message, not that it placed it in the inbox. Ask the recipient to check spam, quarantine, rules and forwarding. Compare the exact recipient and delivery timestamp with the [message log](/docs/api-reference/messages/get-message). For repeated issues, examine [authentication](/docs/email-authentication) and [sender reputation](/docs/deliverability). A sandbox send is never delivered to a mailbox.

## Why Is the Message Queued or Deferred?

Queued means accepted for processing; deferred means an attempt hit a temporary problem. Check whether the message was scheduled, read delivery attempts, and look for the affected recipient provider. Let AhaSend continue its attempts rather than sending another copy. See [bounces and failures](/docs/bounces) and [schedule rules](/docs/send-api/send-email).

## Why Was a Recipient Suppressed?

A matching suppression stops the send. Look up its reason, sending domain and expiry before changing it. An unsubscribe or complaint is not fixed by deleting the record. See [suppression duration and removal guidance](/docs/bounces).

## Why Did HTTP 202 Still Include an Error?

The API can accept a request while a recipient entry has `status: error`. Check every item in the response's `data` array and its error details; do not report a complete success based only on HTTP 202. See the [send response](/docs/send-api/send-email) and [Create Message](/docs/api-reference/messages/create-message).

## Why Did a Retry Send a Duplicate?

Use a stable [idempotency key](/docs/api-reference/idempotency) with the exact same API payload and within its supported window. A timeout or server error can leave the outcome uncertain. Check your job record and message log before retrying. SMTP does not offer that API header, and a new random key on every retry cannot identify the original job.

## Why Are Webhooks Missing or Failing Verification?

Check that the endpoint is enabled, subscribed to the needed event and reachable at its final URL. Verify the original request bytes and full raw secret before parsing or changing the body. Do not base64-decode AhaSend secrets. See [signature verification](/docs/api-reference/webhooks/security), [retry behavior](/docs/api-reference/webhooks/retry-policy) and [local tests](/docs/cli/webhook-testing).

## What Should I Collect Before Asking for Help?

Check the [status page](https://status.ahasend.com). Record the time and timezone, message or job ID, sender domain, affected recipient domain, response status and sanitized error text. Keep keys, SMTP passwords, signing secrets and private message content out of screenshots and tickets. Use the support route for your [plan](/docs/facts).

## Related Guides

* [Domain setup](/docs/domains), [DNS providers](/docs/dns) and [send-only API keys](/docs/send-api/credentials).
* [REST API](/docs/send-api/send-email), [SMTP settings](/docs/smtp), [CLI quickstart](/docs/cli/quickstart), [Node.js SDK](/docs/guides/nodejs-sdk) and [Go SDK](/docs/guides/go-sdk).
* [Plans and limits](/docs/facts), [delivery webhooks](/docs/integrations/webhooks) and [troubleshooting](/docs/troubleshooting).
