Shot Delivery Preflight / Why deliveries bounce

Delivery QC

Why deliveries bounce: the 9 mechanical rejections

Most rejected deliveries are not rejected for creative reasons. They bounce on mechanical mismatches a script can find - which means a script on YOUR side can find them first.

The nine, in rough order of frequency

  1. Wrong EXR compression. One artist's render preset quietly set DWAA; the spec says lossless only. The whole shot bounces.
  2. Missing frames. A farm render died mid-sequence and restarted unevenly. Frame 1049, 1051 - and a hole at 1050 nobody played through.
  3. Short of handles. The shot covers the cut exactly, but the contract says +8 frames each side. Cut-length renders are the subtle version of "missing".
  4. Wrong bit depth. 32-bit float where 16-bit half was specified (double the size, same look) - or half where float was required for a utility pass.
  5. Wrong ProRes flavour. The review QT went out as 422 Proxy because that was the last export preset used. The spec says 4444. They are very different files.
  6. Naming drift. A space in a file name, three-digit padding in one sequence, an unannounced task token - anything the client's parser does not expect.
  7. Mixed versions. v002 frames 1001-1050 and v003 frames 1051-1088 in the same folder after a partial re-render - a package that LOOKS complete by count.
  8. Wrong start frame. Renders from 1 or 101 when the spec says 1001. Trivial to fix, embarrassing to be told.
  9. Wrong resolution or frame rate. A proxy-resolution render promoted by accident, or a 24 fps QT against a 23.976 spec - ingest systems treat those as different numbers because they are.

Why the round trip costs so much

None of these take long to FIX. The cost is the discovery latency: a multi-hour upload, a day in the client's queue, the rejection email, the re-render, the re-upload - and a little note in the relationship ledger. A vendor who bounces twice gets checked harder the third time, which slows every future delivery.

The fix is a ten-second habit

Every item on the list is detectable from file headers and file names - no pixel inspection, no human judgement. Big facilities run in-house Python for exactly this. Shot Delivery Preflight is that script with a UI: pick the spec, scan the delivery folder in the browser, and the fix list tells you what would have bounced - before anything uploads.

Scope honesty: a mechanical preflight cannot catch creative rejections - a comp the supe dislikes sails through any header check. It catches the rejections that were never about the work.

FAQ

What is the most common single rejection?

Compression and frame-range issues compete for first place: a lossy-compressed EXR from a stray render preset, and sequences short of contracted handles. Both are invisible at playback speed and obvious to a header/name check.

Do streamers really automate ingest checks?

Yes - major platforms publish exact technical specs and run automated inspection on arrival, rejecting non-conforming packages. The published spec is effectively the test suite; running it yourself first is just symmetry.

Whose job is preflight - the artist or the producer?

The person pressing upload. In practice: artists preflight their own shots at render time, and whoever assembles the delivery preflights the package. Two cheap checks beat one expensive rejection.

Run the check before the client does

Shot Delivery Preflight batch-checks EXR headers, naming and QuickTimes against the delivery spec in your browser - headers only, nothing uploads. 14-day free trial.

Try the example delivery →

Keep reading