All VAST error codes
408Linear / media file errors · VAST 4.1+

VAST Error 408: Conditional ad rejected

The ad declared conditionalAd="true" — meaning it might not pay — and the placement doesn't accept conditional ads.

Conditional ads (mostly programmatic VPAID-era constructs) reserve the right to not show anything after inspecting the impression — effectively bidding without committing. VAST 4.1 lets ads declare this via the conditionalAd attribute, and lets publishers reject them wholesale with 408.

A 408 means the enforcement worked: demand that might have rendered nothing was refused up front.

Why error 408 happens

VPAID-style decisioning demand on inventory that forbids it

The buyer's unit wants to run code and decide later whether to fill; the publisher requires committed ads only.

Honest labeling meeting strict supply

Demand correctly declaring conditionality gets filtered by placements that opted out — both sides working as intended.

How to fix VAST error 408

  1. 1

    Buy-side: commit before responding

    Move decisioning server-side so the ad returned is guaranteed to render, and drop the conditionalAd flag.

  2. 2

    Sell-side: keep the restriction

    Accepting conditional ads reintroduces render-rate uncertainty. If fill matters more, accept them knowingly on specific placements.

Free VAST validator

Seeing error 408 on a live tag?

Paste the tag URL or XML — the validator resolves the full wrapper chain, validates the schema, downloads every media file, and shows exactly which stage fails.

Validate your VAST tag

VAST error 408 — frequently asked questions

Why do conditional ads exist at all?+

Legacy VPAID workflows let buyers run measurement code inside the ad slot and abandon impressions that didn't meet criteria. Conditional declaration made that behavior visible so publishers could refuse it.

Related error codes

Keep reading