openrtb.native.request.double_encoded
What it means
imp.native.request is defined as a string holding the JSON-encoded Native Markup Request, encoded exactly once. Here the string decodes to another JSON string rather than an object, meaning the payload was JSON-encoded twice.
Why it matters
A buyer decodes once, per the spec, and finds a string of escaped quotes where the native request object should be. Most drop the impression. Double encoding usually comes from serializing an already-serialized string a second time in a generic pipeline.
How to fix it
Encode the Native Markup Request exactly once: build the object, serialize it to a string, place that string at native.request, and stop. If a framework serializes the whole bid request afterward, store the native request as a raw string, not as an object it will re-serialize.
Example that trips it
{ "native": { "request": "\"{\\\"ver\\\":\\\"1.2\\\"}\"" } }The tell is a leading escaped quote inside the string.
Check your payload
Paste a bid request or response into the tester to see whether this code fires against it, or gate on the id in CI with the CLI: the id is stable, wording is not.
Back to the full diagnostic code reference.