Troubleshooting

DKIM shows "missing" but the record exists

This is usually a selector problem, not a DNS problem.

Warmerly checks DKIM by trying a list of common selector names (default, google, k1, s1, mail, and others) against your domain's DNS. It cannot discover an arbitrary selector on its own. If your provider uses something that is not on that list — common with self-hosted mail, Zoho, and custom ESP setups — the check reports none even though the record is genuinely published and your mail is genuinely signed.

Fix: open Accounts → your mailbox → Settings → DKIM selector, enter your real selector, and re-check DNS. If you do not know it, your provider's DKIM setup page (or the selector._domainkey.yourdomain.com TXT record in your DNS panel) has it.

A "missing DKIM" warning in Warmerly is not by itself proof your DKIM is broken. Check the selector before changing anything in DNS. Full walkthrough: Setting up DKIM.

Microsoft 365: SMTP username or password failed, but OAuth reconnected fine

An OAuth reconnect that succeeds followed by an SMTP authentication failure is almost never a password problem. Two causes, in order of likelihood:

1. Mailbox identity mismatch. Warmerly sends over SMTP/IMAP using XOAUTH2 (it does not send through Microsoft Graph), and Exchange requires the username to be the mailbox's primary SMTP address. That address is allowed to differ from the Microsoft sign-in address (the UPN), and when it does, authentication fails with a credentials-shaped error. Check the address shown on the mailbox in its settings, correct the SMTP/IMAP username if it is not the primary address, and reconnect — a reconnect re-reads the real mailbox address from Microsoft.

2. SMTP AUTH disabled tenant-wide. Microsoft 365 can have SMTP AUTH turned off for the whole tenant (and it is off by default on newer tenants), which produces the same error for every mailbox no matter what you type. A tenant admin has to enable SMTP AUTH for the mailbox or the organisation.

Aliases, shared and delegated mailboxes are supported: set the SMTP/IMAP username to that mailbox's address, as long as the signed-in user has Send As or Full Access rights on it.

A mailbox is paused or shows as unreachable

Warmerly pauses a mailbox when its provider stops accepting connections — an expired password, a revoked OAuth grant, a provider-side block, or a host that went down. Paused mailboxes are retried automatically on a schedule, and a mailbox that starts answering again is returned to service without you doing anything.

If it stays paused, reconnect it from Accounts → the mailbox → reconnect, and check the provider side first: a changed password or a revoked app grant invalidates the stored credentials even though nothing in Warmerly changed.

A mailbox paused for reputation reasons is different: it is taken out of campaign sending but keeps warming up, and it is returned to campaigns automatically once it recovers. That is intentional — a mailbox with a reputation problem is the last one that should stop building reputation.

A campaign is not sending

Work down this list; it is roughly the order of how often each one is the cause.

  1. The campaign is not actually live. A draft sends nothing. Check its status on the campaign page.
  2. No sending mailbox is attached, or every attached mailbox is paused.
  3. Per-mailbox daily limits are already used up. A mailbox's daily limit is shared across every campaign it sends for, so two campaigns on one mailbox do not each get the full allowance.
  4. The mailbox is still ramping, so its effective daily figure is below its limit.
  5. Sending window and schedule. Nothing goes out outside the campaign's configured days and hours.
  6. The workspace is billing-locked or past its limit grace period — sending and warmup are both suspended until that clears. See Plans and limits.
  7. Leads are suppressed or invalid. Addresses on the suppression list are never sent to, and that is working as designed.

Placement tests

A placement test sends real probe emails from your mailbox to seed addresses across providers and reports where each landed: inbox, promotions, or spam. It is the most direct answer to "is this mailbox healthy."

  • Run it from Accounts → the mailbox → Placement → Run test.
  • Each test spends one of your monthly placement tests (see Plans and limits). Tests that fail to run do not spend one.
  • Results are a snapshot of that mailbox, that day, at those providers. One promotions placement is not an emergency; the same mailbox landing in spam repeatedly is.

If a test lands in spam: check DKIM, SPF and DMARC are all passing (guides), confirm the mailbox has actually finished warming up, and look at the content you are sending — spam-word-heavy copy, a bare link, or a brand-new tracking domain will sink a technically perfect mailbox.

Replies are not showing in the inbox

Warmerly reads replies over IMAP on a schedule, so a reply that arrived seconds ago may not be there yet. Beyond timing:

  • the mailbox must be connected and not paused — IMAP errors stop reads as well as sends;
  • warmup traffic is classified separately from real mail, so warmup replies do not clutter your inbox view by design;
  • replies are auto-categorised into leads, not-relevant and spam, so check the filter you are looking at before concluding a reply is missing.

See the Inbox API for the same data over HTTP.

Still stuck

Ask Warmi in the chat widget (bottom right of the app and of these docs). It can read your own mailbox, campaign and plan status, and can hand the conversation to a human when the answer is not in the docs.