Claude Code hangs on "I'll wait for the notification": how to spot it and the one-line fix
Claude Code built the machine that makes these videos in 23 minutes, then hung on the first run with "I'll wait for the notification." This is the log line that tells you it happened, and the prompt line that prevents it.
When Claude Code says this, and then goes quiet, nobody is coming. Here's how you catch it.
When Claude Code says this, and then goes quiet, nobody is coming. Here's how you catch it.
What we're building
Quick context. Every episode here is made by code I built with Claude Code over about a DAY. A script file goes in. ElevenLabs reads it and sends back word timings. Remotion turns those timings into captions on the brand look. No editor, no timeline. If that machine dies at one in the morning, there's no Tuesday video. So the question is simple. Can one prompt rebuild it before lunch?
The prompt, word for word
Here's the prompt. It's in the description, copy it. I'm scrolling so you can read along. Build a tool that turns a script into a finished YouTube video, no editor. Input, a script file with scenes. Narration from ElevenLabs, with word timings. Visuals from Remotion, ten eighty p, dark background, my three colors, and the spoken word gets highlighted. One command, script in, MP4 out. Now the two lines that matter. Include a sample script and a README. And, actually RUN the build once so I know it works. That last line is the whole episode. Don't skip it.
12:33, prompt sent
Twelve thirty three, prompt sent. This is the real session log, replayed at about double speed. Watch what it does before it runs anything. Seven files, in a row. Package file, Remotion root, video and scene, the build script, a sample script about itself, a README. Then npm install. Then it runs the build on its own. I haven't typed a thing since the prompt.
First run: how to spot a hang
First run. Narration for three scenes comes back in under thirty seconds. Then this line. Downloading Chrome Headless Shell, eighty five of eighty five megabytes. And then NOTHING. Here's how you tell a hang from a slow step. Scroll up. The download finished. Nothing printed after it. Now look at what the AI did about it. It wrote itself a wait loop. Then a second one, in the background. Then it said, I'll wait for the notification, and ended its turn. That's the tell. When Claude Code says it'll wait for a notification, nobody is coming. Ten minutes went by like that. The log says the model worked four and a half of the fifteen minutes. The other ten, it was ASLEEP.
Second run: instant failure
So I kill it and run the command myself. Same narration, same bundling, then a clean error. NO browser found for rendering frames. Ten to one in the morning. My first bug report is the lazy kind, symptom only. It hung, I stopped it, now it says no browser. Don't write that report.
First fix
Two minutes later it has a diagnosis anyway. The zip downloaded fine, but only two files came out of it. An ABOUT file and a license. No browser binary. Remotion saw the folder and thought, installed. So it deletes the half-extracted browser, downloads it again, runs the build in the background, and says, Build running, I'll wait for the completion notification. Same line as before. And it STOPS again.
The one-line bug report
My turn again. Twelve fifty three. This time the report is one line. Run the build in the FOREGROUND and wait for it, I want to see the file exist. That's the last line of the prompt again.
Fix two: the real cause
Three minutes later it goes into Remotion itself and finds the real cause. The zip extractor bundled inside Remotion stops silently after two files on this Mac. So it stops trusting Remotion to fetch the browser at all. Download the zip, unpack it with the system unzip, hand Remotion the path. Then it runs the build in the foreground, watches it to the end, and reports a real MP4.
Clean run, from nothing
I don't take its word for it. I wipe the output, the audio, and the browser cache, and run the ONE command from nothing. Twenty seven seconds, start to finish, and the file exists.
The video it made
And this is the video it made. I'm getting out of the way for this one.
Verdict, and three takeaways
- End every build prompt with: run it once so I know it works
- "I'll wait for a notification" means you are the notification
- Background build? Make it run in the foreground
Verdict. Would I replace my pipeline with this? NO. Mine has screen recordings, lower thirds, and shorts. This has headlines and captions. Would it have saved me a day? YES, easily. And the waiting isn't a bug. It's the AI being polite in a room where nobody's listening. So here's what to take from this. One, end every build prompt with, actually run it once so I know it works. Two, when it says it'll wait for a notification, you're the notification. Three, if it runs something in the background, make it run it in the foreground. Cost, since I promised. Four dollars and thirteen cents at API prices, covered by my Claude plan. ElevenLabs is a separate bill.
The prompt, word for word
Next: Grab it. One command.
This post is the episode's script. The narration in the video is an AI clone of the host's voice; the apps were generated by Claude Code and are shown as recorded. Tools: Claude Code on a paid Claude subscription, ElevenLabs on a paid plan, Remotion (free for individuals). Not sponsored.