When one AI reply is 57,000 tokens
An 8-minute film sat in our studio for an hour with nothing happening. No error, no cost, the process alive. Then it did it again. Claude wasn't stuck: it was writing the entire film's picture in a single answer, and that answer took longer than the request was allowed to last. Here's what we found, and why every long KitCut film is now written as a set of short conversations.
KitCut makes animated films in code. Claude writes the narration, records it, and then writes the picture: one JavaScript program that draws every frame of the film. For a 30-second film that program is a few hundred lines. For eight minutes it's a different thing.
The film that went quiet
The film had recorded its narration and was due to start on the picture. Then nothing. The log of Claude Code, the agent that runs Claude for us, showed the same line every five minutes: Request timed out, retry 1 of 10, retry 2 of 10. Other requests to the same API answered instantly.
Once we raised the timeout and let it finish, the cause was plain. The next reply was the whole picture: 56,863 output tokens, taking 7.7 minutes to write. The request timeout was shorter than that, so every attempt was cut off near the end and started again from the beginning. It would have done that forever.
Three things grow with a film's length
Raising the timeout fixed that film. But the log showed three numbers that all grow with a film's length, and they meet at the same place:
- The reply that writes the picture. About 57,000 tokens for 8 minutes of film. A single reply can't be longer than 128,000 tokens, so a film of more than about 18 minutes can't have its picture written in one go at all.
- The context the conversation carries. 73,000 tokens when the film starts, 371,000 when it ends: about 37,000 for every minute of film. Against a one-million-token window, a single conversation runs out at about 25 minutes of film.
- The tool results. Every recording of the narration returned the word timings of all 67 lines, about 24,000 characters, again and again.
And cost grows faster than length, because every turn re-reads everything the conversation has accumulated so far.
First, stop the bleeding
We shipped the quick fixes the same day:
- a request timeout of 30 minutes and the full 128K output allowance;
- films over 90 seconds told to write their picture in parts, not one reply;
- a long narration's tool result carrying only each line's span, plus the words of the line just re-recorded;
- a stall watchdog: 20 minutes with no message from Claude, no event and no tool running, and the reply is cut off and the session picked up again with "use shorter replies". After two tries the film fails and its credits go back, instead of sitting for hours.
That made 8 minutes reliable. It didn't change the ceiling.
Then change the unit of work
The real fix was to stop treating a film as one file written by one conversation. A long film is now made in scenes, by three kinds of pass:

- The director reads the brief, writes and records the narration, sets the look (the palette, fonts and drawing helpers every scene shares), and writes a plan: one entry per scene of 20 to 60 seconds, covering every line. It draws scene 1 itself as the pilot, so every later scene copies a proven style rather than a description of one.
- Each scene is a fresh conversation with no history. It gets the direction, the shared look, its own lines with the time of every word, what the scenes on either side show, and stills of the last frames before it. It may write only its own file. It checks its stills, fixes what it sees, and leaves a two-sentence summary for its neighbours.
- The editor looks at the whole film on contact sheets: every join between scenes, every summary. It fixes continuity, writes the music and sound effects for the whole film, and runs the sound check.
Every reply and every conversation now has a size set by a scene, not by the film. A crash, a restart or a stall costs the scene in progress. The film carries on from the first scene not done, and nothing is replayed. Progress is the studio's, not Claude's: a scene can't mark itself finished.
The surprises
Thinking harder made it slower, not better. The first real 8-minute film in scenes failed: scene 2 received nothing but keep-alive pings until its time ran out, twice. At the highest effort setting, Opus thought for over ten minutes before writing the first word of a 40-second scene. Scene passes now think at one level down, and each pass has its own time allowance sized to its job.
Scenes aren't free. At 6 minutes, making a film in scenes cost about twice as much per minute of film as one conversation, in money and in time, and the pictures weren't visibly better. So scenes switch on only above 8 minutes, where one conversation starts to fail. Shorter films keep the simpler path.
Scenes can't see each other's code. On one 8-minute film, 10 of 12 scenes pasted the same drawing helper, because a scene can't see what another one wrote. Helpers a scene puts on the shared look are now visible to the scenes after it.
What it made possible
The ceiling is gone. Public plans make films of up to 8 minutes (see Limits). Behind them, the studio now takes films of up to 30 minutes for accounts with a longer limit, and every conversation in one is still only a scene or so in size.
If you build on long model outputs
- Measure your longest reply, not your average one. The failure is at the tail, and it looks like a hang, not an error.
- Check every timeout between you and the model. Ours was in the agent's client, not the API.
- Find the number that grows with the job. For us it was context per minute of film. Once you know it, you know your ceiling.
- Make the unit of work something with a fixed size, and checkpoint it. A long job then fails one piece at a time.
- Don't switch the complex path on everywhere. Use it where the simple one breaks.
For what an 8-minute film made this way looks like, see how KitCut made an 8-minute film from one brief. How a film is made walks through every step, and how long each takes by length. And for another thing the agent's own logs taught us, read what we learned mining its transcripts, and for what effort settings cost, the cheaper model wasn't half the price.