# CMP-067 — The hosted evidence URL must return the artifact, not an error page

> A hosted evidence URL must return 200 and render the artifact rather than a 404, a timeout, a redirect or a placeholder.

- **Rule ID:** CMP-067
- **Layer:** Campaign (`CAMPAIGN`)
- **Checks:** `hosted evidence URL`
- **Severity:** BLOCKING — Breaking this rule gets the submission rejected outright.
- **When it bites:** Gates approval — get this wrong and registration is refused
- **How it is detected:** AI judgement over the crawled website or policy page
- **Fix type:** Supply evidence only you hold
- **Required by:** Twilio, Aerialink
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/campaign/cmp-067/

## Why this rule exists

Evidence links rot between writing the registration and the review, and the failure is silent from the submitter's side because their browser serves the file from cache. A reviewer who follows the link and sees a 404 does not chase it — the campaign is rejected for missing evidence that the submitter can still see on their own screen.

## How to fix it

Open every evidence URL in a private browsing window on a device that has never seen it, and replace any that do not render the file itself. Done when each link returns the image or PDF directly rather than a viewer page, a login, or a "file not found".

## Common mistakes

- A cloud-drive preview page returns 200 while showing the reviewer a sign-in prompt, so status code alone is not the test — what came back has to be the artifact.

## Provider rejection codes

| Provider | Code | Resubmission allowed |
| --- | --- | --- |
| Twilio | `30891` | yes |
| Twilio | `30922` | yes |
