Opens in a new tab

Designing a Canary Row to Catch Pipeline Faults Before a Full Batch

Published October 28, 2026

A canary row is one row of data that you send through the whole Templater pipeline before you release the rest. If it renders correctly, the path from data source to finished file works. If it fails, you have lost minutes instead of a night. Our documentation does not use the word canary. What it does describe is a pre-flight: render a single video on a comparable machine before you commit to a batch. This article turns that advice into a method, using only features Templater documents.

The method has a limit we state at the start. A canary row proves the pipeline works for that row. It cannot prove that every other row is clean. So the skill is in choosing the row, running it through the same route the batch will use, and reading the result properly. The sections below cover what a canary can and cannot prove, how to choose one, how to run it in Pro and in Bot, and how to decide when to release the rest.

What a canary row proves, and what it does not

Think of everything a single Templater job touches. It reads a data source. It maps a row to named layers. It may download or locate footage. It applies layout rules. It sends a composition to be rendered or replicated, using a render settings template and an output module. It writes a file with a name. If you use the Bot, it also writes a status back to the sheet and may run event scripts. Every one of those steps can be broken by something that has nothing to do with the data in the other rows.

A canary row exercises all of those steps once. That is what it proves. Our FAQ describes the same idea for time estimates. To estimate how long a batch will take, it recommends a pre-flight: render a single video, or a small batch, on a local machine comparable to your production machine, using a video similar to the rest of the set. Multiply the time by the number of videos if you render in a queue, and you have a fair estimate. In our view, the same single render also tells you whether the pipeline runs at all.

Here is what a canary cannot prove. It cannot show that row 4,000 has a missing image. It cannot show that a translated headline in row 812 is too long for its box. It cannot show that a different row’s font does not support its language. Those are data faults, and they live in rows you have not run. For those, you need previews of a spread of rows and spot checks, which we describe below. The canary is for the pipeline. The spread is for the data. Use both.

A final point on the name. We chose “canary” because the idea is old and clear: a small thing that tells you whether the air is safe before the whole crew goes in. Use whatever name your team prefers. What matters is that a single, deliberate, early run exists and that somebody reads it.

Choosing the canary row

A random row is a weak canary. A good canary is the row most likely to break something, because a pipeline that survives it is more trustworthy. Everything in this section is our suggestion, but each suggestion is tied to behavior Templater’s documentation describes.

Pick the longest text. Templater scales and repositions dynamic layers according to layout rules, and new data can change a layer’s size, alignment, color or position in a way you do not want. The row with the longest headline is the one that tests those rules hardest. If you use Time Sculpting, the same row also tests how the composition’s length changes, since the render settings template matters there. Our render-settings table says the best-comp template ensures the full duration is rendered regardless of how Templater adjusts the target comp’s length.

Pick a row that uses every kind of source. If some rows use remote footage and others use local files, make sure the canary uses a remote reference, because remote footage has its own failure points. The command line error codes separate them: 1001 for an error swapping a footage source, 1002 for an error downloading a remote footage source, and 1003 for not finding the footage file on the network. A canary that includes a remote file tests the download path before the batch depends on it.

Pick a different language or font if you have one. Dynamic text styling lets a row name a font, a text direction and a justification. A font that is installed but does not support the language of the text produces no text at all for that row, and a font that is not installed gives the system default on Windows and unexpected results on macOS. A row that carries a non-Latin script with its own font is a good canary for this.

Pick a row with a unique output name. Give the canary its own value in the id or output column. The Bot overwrites an existing file when two rows render to the same output name, and Templater names outputs by appending the id to the job prefix and the target composition name. If your canary has an obvious name, you can find it in a folder of hundreds, and it cannot be overwritten by a later row.

Include the target and project switches you actually use. If the batch uses a target column to switch compositions, or an aep column to switch project files, your canary should use them. Our documentation notes that the project files must open without error, and that missing fonts or missing effects will halt the process. Better to learn that on one row.

If you cannot find one row that does all of this, use two or three canaries instead of one. The goal is coverage of the pipeline’s moving parts, not a particular count.

Running the canary in Pro and in Bot

The route matters. Run the canary the way the batch will run, or you have tested a different pipeline.

In Templater Pro, use the range. In the Transport section of the Templater panel, enter the data range for the batch. Start row must be greater than 1 for Google Sheets and tab-delimited files, because row 1 holds the column names. For a JSON object array, start row must be greater than 0. There is a wrinkle for a one-row canary. One page of our documentation says the end row must be greater than or equal to the start row, and another says greater than the start row. If your panel will not accept a range that starts and ends on the same row, use a two-row range and make both rows canaries.

Before the full-quality run, you can use Dataclay’s draft render settings templates to move quickly. The draft templates produce very low-quality output but let you run many jobs fast to test your pipeline. The work-area variants render only the frames in the target composition’s work area, and the best-quality work-area template is described as useful while pre-flighting a project. There is a trade-off we want you to see. In our view, a draft template does not test your final output module or codec. Run the canary at least once with the production render settings and output module, because those are part of the pipeline too. And if your batch will go through Adobe Media Encoder, run the canary through it, since that route has its own requirements: a watch folder, a local or networked output folder, and the same drive mappings and fonts on the machine that encodes.

For a quick look at how data lands in a composition, there are two documented shortcuts. One is the PNG sequence output module. Set the target composition’s work area to a single frame, and Templater renders one still image per video. The other is spot checks, which export still images or clips of selected frames. You can mark the frames you want with named timeline markers. If you do not, Templater samples an evenly distributed number of frames across the composition’s duration. Spot checks work in Templater Pro and Bot.

In Templater Bot, control what is marked ready. The Bot retrieves only rows whose render-status is ready. That makes the canary easy. Mark only the canary row ready. Leave every other row empty. Enable the Bot, and wait for its first check, which by default runs every 30 seconds. Watch the status move from queued to processing to done. If you run more than one Bot, add the canary’s Bot name to the bot column so the machine you want to test is the one that takes it. In the Bot settings, the actions you tick decide whether the Bot renders, replicates or spot checks, so tick the same ones the batch will use.

If you pay per output through a Que Meter account, remember that every output uses one credit, including spot checks and replicas. A canary costs a credit, which in our view is worth it, and the Bot stops itself if the meter runs dry, so check your balance before you start.

Reading the result and releasing the rest

A canary produces one of a handful of outcomes. Here is how to read each, using what our documentation tells us.

Done, and the file is right. Open the output. Look at the text fit, the footage, the colors, the length. Check the file name. Then check that anything attached to the job worked: the event script that was meant to move or upload the file, the data written back to the sheet. The pipeline is proven for that row.

Done, but the file is wrong. A status of done means Templater finished processing the row. So open the file and check it yourself. Also look at the log. If you use Dynamic Essential Properties (Templater 3.5 or later), a property key whose data type does not match is skipped and an error is written to the log.

ERR::MEDIA. Templater had a problem locating or importing a media asset. The video may have rendered, but it may contain a media issue. Open it and look for the missing or placeholder media, then use the checks our troubleshooting page lists for footage that does not update: the footage source path, that the file exists, that file-name references are case-sensitive, and that After Effects can import the file type.

ERR::AFXHOST. After Effects encountered an error and will likely have stopped operating normally. Look at After Effects on the Bot machine. Then read the log.

Nothing happens. Check that the data source has a render-status column, that a Bot Name set in Preferences has a matching bot column, and that the row says ready. Our FAQ describes an error with code 3 from Google, a script error, that appears when a value the Bot needs is not found in the data source, and names those two missing columns as the usual cause. If Templater cannot connect to Google Drive, our troubleshooting page says to check that the curl.exe file is not being blocked by anti-virus or anti-malware software.

It hangs. Our troubleshooting page says Templater can preview a composition but hang on rendering or replicating when the Templater Settings effect is applied to a layer type it does not support, or when a parameter value is not valid for the layer type. Inspect the log and note the last message.

When the canary passes, release the rest in stages instead of all at once. With the Bot, the queue holds up to 20 rows at one time by default, so a first release of 20 rows is a natural next step: a second canary at slightly larger scale. Scan those outputs. Then release the remainder. Our documentation describes setting 10,000 rows to ready and letting the Bot work through them in windows of 20 so Templater needs less memory. Pair that with the spot-check routine in our article on generating spot checks with Templater, and with the data-quality advice in handling dirty or incomplete data.

The bottom line is simple. A canary row is cheap, and it moves the first failure from the middle of a big batch to the first minute. Choose the row that is hardest on your template, run it by the same route as the real batch, and treat done as a prompt to open the file, not as the answer. Our guide to batch rendering with Templater sets the wider scene, and our article on mid-queue failures covers what to do when a failure still gets through, and the Templater page covers the editions.

A few questions come up every time we suggest this approach.

Frequently Asked Questions

Is a canary row a Templater feature?

No. It is a method, not a button. Our documentation uses the idea of a pre-flight: render one video, or a small batch, on a machine comparable to production before you commit. A canary row is that pre-flight made deliberate, using the data range in Templater Pro or the render-status column in Templater Bot to run only the row you chose.

How do I run just one row in Templater Pro?

Enter the row in the Start and Finish fields in the Transport section. Start must be greater than 1 for Google Sheets and tab-delimited files, because row 1 holds column names. Our documentation gives two wordings for the end row, greater than or equal to the start or greater than the start. If a one-row range is refused, use a two-row range.

How do I run just one row in Templater Bot?

Mark only that row ready in the render-status column and leave the others empty, since the Bot retrieves rows with the value ready. If you run several Bots, put the Bot’s name in the bot column for that row. Then enable the Bot and wait for its next check, 30 seconds by default.

Which row should be the canary?

Choose the row that is hardest on your template: the longest text, a remote footage reference, a non-Latin language with its own font, a unique output name, and any target or project switch the batch uses. If one row cannot cover all of that, use two or three canaries.

Does a passing canary mean the whole batch is safe?

No. It proves the pipeline for that row. Other rows can still hold a missing image, a font that cannot draw its language or text that does not fit. Preview a spread of rows, read the log, and use spot checks over a range. The canary covers the path, and the spread covers the data.

Do canary runs cost anything on a metered account?

Yes. With a Que Meter account, each output uses one credit, including renders, replicas and spot checks. The Bot also stops itself when the meter runs out, so check your balance before you start. See our pricing page for current credit options.

Leave the first comment

Sign up

Stay up to date with Datclay's newsletter. We won't spam your inbox.

Newsletter Signup
Name
Name
First
Last

By submitting your email, you agree to our Terms and Privacy Policy. You can opt out at any time.