What every state in a report is telling you
A SendProofs report has no score and no summary grade. Every checked resource lands in exactly one of six states, each with recorded evidence and one concrete next action. This page is the complete vocabulary, including how the campaign outcome rolls up from it.
The six states
- Healthy
- The destination answered with a 2xx status and no warnings were recorded. Action: none.
- Warning
- The destination answered 2xx, but at least one warning was recorded along the way — a UTM issue on the final URL, an HTTPS→HTTP downgrade inside the redirect chain, an unexpected content type on an image, or a response truncated at the 64 KB cap. Action: review each recorded warning and decide before approving.
- Broken
- A deterministic failure: a non-2xx status (other than the remote-restriction statuses below), a timeout, a connection or TLS failure, or a redirect fault — a loop, a hop with no target, or a chain past the 3-hop limit. The HTTP status or an explicit error code is part of the evidence. Action: fix in your sending platform, send a fresh test, recheck.
- Protected
- The link was recognized as action-bearing — unsubscribe or preference center, sign-in or reset, verification, invitation, order or purchase — by URL and link-text patterns, at upload or on a redirect hop — and the recognized action URL was never requested. Recognized at upload, the link is never touched at all; recognized on a redirect hop, the check stops at that hop without following into the action. Likely tracking pixels are treated the same way. Action: review by hand, deliberately — these links do things.
- Blocked
- The network safety policy refused the destination — for example a hostname resolving to a private or internal address — with the policy reason recorded. Action: review manually; work out why a public campaign carries a non-public destination.
- Inconclusive
- The destination answered 401, 403 or 429 — it limited automated access. This state is deliberately neither a success nor a failure: a bot-protection response says little about what a real reader would see. Action: open the link yourself and confirm.
The vocabulary is fixed. In particular, Protected, Blocked and Inconclusive are explicitly unresolved states — the report asks you to resolve them by hand, and never folds them into a green result.
Each state in a real report shape
| Resource | State | Evidence |
|---|---|---|
| campaign.example/launch?utm_source=email&utm_campaign=aug-launch | Healthy | 200 after 2 redirects · 312 ms · 14:02 UTC |
| campaign.example/blog/whats-new?utm_source=email | Warning | 200, but the workspace's required utm_campaign is missing on the final URL |
| campaign.example/pricing/summer-2026 | Broken | 404 at final destination — fix in your sending platform, then recheck |
| example.com/unsubscribe/%5BREDACTED%5D | Protected | Not opened — action-bearing link, review manually |
| img-staging.campaign.example/hero-test.png | Blocked | Resolved to a non-public address — not requested, review manually |
| partner.example/offer | Inconclusive | 403 — destination limited automated access, review manually |
Sample data. The full sample run covers 24 unique resources (18 links, 6 images): 15 Healthy, 2 Warning, 1 Broken, 3 Protected, 2 Inconclusive, 1 Blocked. 20 of the 24 consumed a check; the 3 Protected items and the 1 Blocked item were never requested.
How the campaign outcome rolls up
When a check run completes, the campaign outcome is derived from the resource states, in this order:
- Any Broken resource marks the campaign Failed. The sample run above is Failed — one dead pricing link outweighs 15 good ones.
- Otherwise, any Blocked or Inconclusive item marks it Incomplete. Manual review is required before the campaign counts as reviewed.
- Otherwise, any Warning marks the campaign Warning.
- Otherwise, with Healthy results present, the campaign is Passed.
- A completed run with no Healthy evidence at all is also Incomplete.
Runs that do not complete — an internal error, an exhausted monthly allowance — are always marked Incomplete. An interrupted run is never reported as passed, silently or otherwise.
The evidence behind every check
A timeout or connection failure has no HTTP status — for those, the error code carries the evidence instead. Nothing is left as an unexplained red dot. Evidence reports in depth.
Why some URLs read [REDACTED]
Visible report URLs are redacted by pattern: recognized token-like path segments —
long mixed-alphanumeric strings and UUIDs — the segment following a sensitive keyword
such as unsubscribe or token, and every query value except
the five standard utm_* keys are replaced with [REDACTED].
Redirect chains are redacted hop by hop. Redaction is pattern-based — it hides the
common token shapes, not every conceivable secret — and the canonical stored URLs are
encrypted at the application level regardless of what the display copy shows.
Read a report about your own campaign
Upload the delivered test — every state above comes with its evidence attached.