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 {
	Platform

View on GitHub (pinned to 4000b2338a)

Solutions

  1. Increase the job's execution timeout setting
  2. Shorten/simplify the job prompt or move heavy work to smaller steps
  3. 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

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.

Related errors


AI-assisted analysis of chenhg5/cc-connect@4000b2338a (2026-09-06). Data as JSON: /api/errors/ad3282bab51c2b23. Report an issue: GitHub.