chenhg5/cc-connect · warning
job timed out after %v
Error message
job timed out after %v
What it means
runJob enforces the job's execution timeout: if the agent engine does not deliver a result on the done channel within job.ExecutionTimeout(), the run is failed with 'job timed out after %v' and recorded via MarkRun. This indicates the underlying agent run exceeded its allowed duration.
Source
Thrown at core/cron.go:711
slog.Error("cron: project not found", "job", job.ID, "project", job.Project, "manual", manual)
cs.store.MarkRun(job.ID, fmt.Errorf("project %q not found", job.Project))
return
}
slog.Info("cron: executing job", "id", job.ID, "project", job.Project, "manual", manual, "prompt", truncateStr(job.Prompt, 60))
done := make(chan error, 1)
go func() {
done <- engine.ExecuteCronJob(job)
}()
var err error
timeout := job.ExecutionTimeout()
if timeout > 0 {
select {
case err = <-done:
case <-time.After(timeout):
err = fmt.Errorf("job timed out after %v", timeout)
}
} else {
err = <-done
}
cs.store.MarkRun(job.ID, err)
if err != nil {
slog.Error("cron: job failed", "id", job.ID, "manual", manual, "error", err)
} else {
slog.Info("cron: job completed", "id", job.ID, "manual", manual)
}
}
// mutePlatform wraps a Platform and discards all outgoing messages.
// Used for muted cron jobs that should execute without sending chat messages.
type mutePlatform struct {
PlatformView on GitHub (pinned to 4000b2338a)
Solutions
- Increase the job's execution timeout setting
- Shorten/simplify the job prompt or move heavy work to smaller steps
- Investigate the agent CLI for hangs (check its logs); network or auth stalls are common causes
Example fix
// before execution_timeout_secs = 60 // too short for long agent runs // after execution_timeout_secs = 900
Defensive patterns
Strategy: try-catch
Try / catch
// timeout is recorded via store.MarkRun; inspect it after the fact
if rec := cs.Store().Get(job.ID); rec != nil && rec.LastError != nil && strings.Contains(rec.LastError.Error(), "timed out") {
slog.Warn("cron job timed out", "id", job.ID)
} Prevention
- Set execution timeouts generously relative to typical agent run duration
- Keep prompts small enough to finish within the timeout
- Monitor MarkRun failures to catch chronic timeouts
When it happens
Trigger: Agent process hangs or takes longer than the job's configured execution timeout during a scheduled or manual (RunJobNow) run.
Common situations: Large prompts against slow models, agent CLI stuck waiting for input, network stalls — all exceeding the per-job timeout configured on the cron job.
Understand the failure class
Background: Request timed out: what client-side request timeouts mean across libraries (Request timed out, TIMED_OUT, APITimeoutError) — this error's family across 39 libraries.
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
Related errors
- session is closed
- pi: rpc process did not become ready within 30s
- %s must be true or false
- timeout_mins must be >= 0
- unknown or invalid field: %s
AI-assisted analysis of chenhg5/cc-connect@4000b2338a (2026-09-06).
Data as JSON: /api/errors/ad3282bab51c2b23.
Report an issue: GitHub.