File ".../site-packages/conductor/executor/agent.py", line 490, in execute
_verbose_log_section(
f"Prompt for '{agent.name}'",
rendered_prompt,
)
File ".../site-packages/conductor/executor/agent.py", line 40, in _verbose_log_section
verbose_log_section(title, content)
File ".../site-packages/conductor/cli/run.py", line 401, in verbose_log_section
_verbose_console.print(
Panel(
Text(content),
title=styled("[cyan]{}[/cyan]", title),
border_style="dim",
)
)
...
File ".../site-packages/rich/console.py", line 2124, in _write_buffer
self.file.write(text)
BlockingIOError: [Errno 11] write could not complete without blocking
Describe the bug
When running a workflow in a non-interactive environment (such as
cronor whenstderr/stdoutis connected to a pipe),conductor runfails withBlockingIOError: [Errno 11] write could not complete without blockingif an agent's rendered prompt is large (e.g. > 64 KB).Context & Reproduction Details
cron(0 7 * * * /bin/bash -lc "... conductor run workflow.yaml --no-interactive").sys.stderr.write()/self.file.write()raisesBlockingIOError.Observed Behavior & Stack Trace
verbose_log_section._verbose_console/ RichConsolefails onself.file.write(text):_print_resume_instructionsandprint_error) also invoke console printing, triggering repeatedBlockingIOErrorexceptions.Suspected Root Cause (Presumed)
verbose_log_sectionunconditionally prints the full rendered prompt Panel to console when in full verbose mode (which is default).BlockingIOError/ non-blocking pipe semantics.Expected Behavior
write()cannot complete immediately or if the pipe buffer is full._print_resume_instructions,print_error) should survive stream write errors without crashing.