vastlint
VAST-2.0-nonlinearads-unknown-child

NonLinearAds can only contain NonLinear and TrackingEvents

<NonLinearAds> contains an unrecognised child element

ErrorSchemaIAB VAST 2.0 §2.4.3VAST 2.0 and later (all versions)

Short answer

If <NonLinearAds> contains anything other than <NonLinear> or <TrackingEvents>, parsers treat the block as invalid and the overlay can fail before rendering.

`<NonLinearAds>` may only contain `<NonLinear>` and `<TrackingEvents>` elements.

Why this matters in production

This rule is usually a delivery blocker. Many players, SDKs, and ad servers will discard the response or skip the affected creative once this condition is hit. Schema violations tend to create parser disagreement. One system may recover while another drops the tag entirely, which is why these bugs often show up as environment-specific fill loss. Affected scope: VAST 2.0 and later (all versions).

How to fix

Remove the unrecognised element — <NonLinearAds> accepts only <NonLinear> and <TrackingEvents>.

Invalid

<NonLinearAds>
  <UnexpectedNode><![CDATA[debug]]></UnexpectedNode>
  <NonLinear width="480" height="70">
    <StaticResource creativeType="image/png">
      <![CDATA[https://cdn.example.com/overlay.png]]>
    </StaticResource>
  </NonLinear>
</NonLinearAds>

Valid

<NonLinearAds>
  <TrackingEvents>
    <Tracking event="creativeView"><![CDATA[https://track.example.com/creativeView]]></Tracking>
  </TrackingEvents>
  <NonLinear width="480" height="70">
    <StaticResource creativeType="image/png">
      <![CDATA[https://cdn.example.com/overlay.png]]>
    </StaticResource>
  </NonLinear>
</NonLinearAds>
Check your VAST tag for VAST-2.0-nonlinearads-unknown-child and other issues instantly.Validate a tag →