Troubleshooting
Find the cause of failed, missing or doubtful deliveries without resending blindly.
Reviewed 2026-10-28Markdown
Start from the Message row and its Failure Reason. Do not rerun a flow to test a fix before checking what the last run already wrote: every run, manual or dry, writes rows.
| Symptom | Check | Recovery and confirmation |
|---|---|---|
Failed: Person not found in Tooling mirror: rec… |
The person’s Identity Binding and Slack Tool Account in Tooling and Access | Bind the person to a human Slack account; the next scheduled run should show a Sent row for that recipient |
Failed: invalid_arguments |
Whether opening the DM failed first (user_not_found) |
Fix the account or workspace the recipient resolves to; the flow still posts after a DM error |
| Sent, but the person saw nothing | External Message Id starts with dry-run- |
The run was simulated; nothing was delivered |
| Two digests for one person on one day | Two Membership rows for the person, or two runs | One digest per membership is expected; a second run sends again |
| No rows for today | The scheduled run, the schema check, or nothing due | Without n8n execution history, ask the flow maintainer; a schema mismatch stops the run before any write |
| Recipients (Membership) blank | Failure Reason on the same row | Recipient resolution failed before Slack; nothing was sent |
| Recipients (Membership Name) or Audience (Membership Name) blank | Lookup configuration | Known invalid lookup; read Recipients (Membership) instead |
| Messages Sent looks too high | Dry-run rows counted as Sent | Exclude dry-run- ids when counting deliveries |
| Last Sent on a channel looks wrong | Sent At on linked rows, dry runs included | Correct Sent At only from the tool’s own timestamp |
| A binding does not take effect | Is Current and Active Bindings | Fix Valid From or Valid Through; remember no flow reads bindings yet |
Escalation evidence
Give the maintainer the table, the row’s Created time and timezone, Status, Failure Reason and the record id in it. Keep tokens, webhook URLs and full message bodies out of shared diagnostics. See known gaps for unresolved configuration issues.