Notifications — Troubleshooting
“I am not getting emails”
Work through these checks in order.
1. Check your bounce state
A hard bounce or complaint disables email sending to your address. Once your address is marked as bounced or complained, delivery stops immediately, even for always-on categories.
There’s no bounce indicator in Account → Notifications yet — check it via MCP with
get_my_notification_preferences(), which reports the real bounce_state.
If your address is hard_bounce, use the re_verify_my_email() MCP tool (or
POST /v1/users/me/email/re-verify) to recover it yourself: it sends a plain delivery-check
email, and the email actually reaching your inbox is what clears the bounce — no reply or click
needed. See Deliverability for how this works. It’s a no-op if
your address isn’t currently hard_bounce.
A complaint state (you or your mail provider marked a FlowState email as spam) does not
self-recover this way — it’s permanent until FlowState support re-enables it, since re-sending to
an address that has complained risks sender reputation regardless of whether it was intentional.
2. Check your spam folder
SES emails with high-quality DKIM and SPF records are rarely spam-filtered, but it does happen. Search your spam folder for noreply@flowstate.copebit.io. If you find FlowState emails there, mark them as “Not spam” to train your mail client.
If your organization uses a mail security gateway (Proofpoint, Mimecast, etc.), ask your IT team to allowlist flowstate.copebit.io. See Deliverability for allowlisting guidance.
3. Check your preferences
Per-tenant and global preferences (see Manage preferences) are applied at send time: a per-tenant override for a category takes precedence over your global setting for that tenant; otherwise your global setting applies. If you’ve turned a category off — globally or for this tenant — you won’t receive it, which is expected.
4. Check the always-on rules
Four categories are always-on and cannot be disabled: account.invite_received,
account.gdpr_export_ready, org_billing.suspended_nonpayment, and
org_billing.purge_warning. If you are expecting one of these and not receiving it, the issue
is not preferences — check your bounce state (step 1) and spam folder (step 2).
5. Check the send log
There’s no “Send history” view in the app yet. Use MCP:
list_notification_log(category="tenant.role_changed", limit=20) (requires
tenant:notifications:audit:read) to see this tenant’s actual send records, filterable by
category and paginated with before.
“I am getting too many emails”
All optional categories are on by default, so receiving tenant, HubSpot, or Slack emails without
having explicitly opted in is expected. Turn a category off — globally or just for one tenant —
from Manage preferences; it takes effect immediately. To stop
everything optional at once, use unsubscribe_all (see
Manage preferences).
“Unsubscribe didn’t work”
Check which of these applies:
- You used the mailed link or the one-click unsubscribe and it still didn’t work — see
Unsubscribe for exactly what the link does and how to confirm it
took effect (the
/u/<token>page shows an “Unsubscribed” confirmation, and you can checkget_my_notification_preferences()afterward). - You’re trying to unsubscribe from an always-on category —
account.invite_received,account.gdpr_export_ready,org_billing.suspended_nonpayment, andorg_billing.purge_warninggenuinely cannot be unsubscribed from; that’s intentional, and their emails don’t carry an unsubscribe link. - You unsubscribed but are still getting a specific category — a per-tenant override (see Manage preferences) can re-enable a category for one tenant even after a global unsubscribe; check whether one is set for that tenant.