#Cron jobs showing failure

1 messages · Page 1 of 1 (latest)

lunar sapphire
#

I have a blogwatcher scan job that runs, but not sure if it is succeeding or not. Here is the log from the cron logging

{
"ts": 1778271023838,
"jobId": "a3010186-77d7-4bff-967f-5f0ad09cd023",
"action": "finished",
"status": "error",
"error": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.",
"summary": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.",
"diagnostics": {
"summary": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.",
"entries": [
{
"ts": 1778271023796,
"source": "tool",
"severity": "error",
"message": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying."
},
{
"ts": 1778271023799,
"source": "agent-run",
"severity": "error",
"message": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying."
}
]
},
"delivered": false,
"deliveryStatus": "not-requested",
"delivery": {
"intended": {
"channel": "last",
"to": null,
"source": "last"
},
"fallbackUsed": false,
"delivered": false
},
"sessionId": "8395fe9d-8bd8-4242-b9a5-2e1fc4ff7a0c",
"sessionKey": "agent:main:cron:a3010186-77d7-4bff-967f-5f0ad09cd023:run:8395fe9d-8bd8-4242-b9a5-2e1fc4ff7a0c",
"runAtMs": 1778271000016,
"durationMs": 23785,
"nextRunAtMs": 1778285400000,
"model": "gpt-5.4",
"provider": "github-copilot",
"usage": {
"input_tokens": 2341,
"output_tokens": 852,
"total_tokens": 2905
}
}

boreal canopyBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

slow starBOT
#

That run did not complete successfully from cron’s point of view: status: "error" + delivered: false means cron recorded the agent turn as failed, not just “no message delivered”.

Important nuance: the text says “some tool actions may have already been executed”, so the blogwatcher scan may have partially run before the model/provider failed to produce the final response. The usage block also suggests the model call happened.

I’d check it in this order:

openclaw --version
openclaw cron runs --id a3010186-77d7-4bff-967f-5f0ad09cd023 --limit 20
openclaw cron show a3010186-77d7-4bff-967f-5f0ad09cd023
openclaw logs --follow

Then force one run while watching logs:

#
openclaw cron run a3010186-77d7-4bff-967f-5f0ad09cd023

The most useful next paste would be:

  • openclaw --version
  • the output of openclaw cron show <jobId>
  • the log lines around that run/session id: 8395fe9d-8bd8-4242-b9a5-2e1fc4ff7a0c

Docs: https://docs.openclaw.ai/automation/cron-jobs#troubleshooting

My hunch from this snippet: the scan job is firing, but the final agent response path is failing through the github-copilot/gpt-5.4 run. So don’t assume “blogwatcher succeeded” until you verify the watcher’s own output/side effects or the run transcript/logs.

lunar sapphire
#

openclaw --version shows:
OpenClaw 2026.5.7 (eeef486)

slow starBOT
#

2026.5.7 is the current tagged release for that commit, so this doesn’t look like an obvious “you’re on an old cron implementation” issue.

That exact error is OpenClaw’s incomplete-turn guard: the agent run reached a terminal state without a usable final assistant response. Because it says “some tool actions may have already been executed”, OpenClaw detected possible side effects before the final reply failed.

Next I’d want to distinguish blogwatcher failed vs blogwatcher ran but final model response failed:

openclaw cron runs --id a3010186-77d7-4bff-967f-5f0ad09cd023 --limit 20
openclaw cron show a3010186-77d7-4bff-967f-5f0ad09cd023

And if you can grab logs around the session id:

openclaw logs --since 30m | grep -E '8395fe9d-8bd8-4242-b9a5-2e1fc4ff7a0c|a3010186-77d7-4bff-967f-5f0ad09cd023|blogwatcher|incomplete|error'
#

If those logs show tool output succeeded and only the final response failed, the pragmatic fix is usually to simplify the cron prompt/output requirement or switch the cron job off that specific model override and use your normal configured model/fallback chain. If the tool itself failed, the run history/logs should show the actual underlying blogwatcher error before this wrapper message.

lunar sapphire
#

{
"entries": [
{
"ts": 1778535513552,
"jobId": "a3010186-77d7-4bff-967f-5f0ad09cd023",
"action": "finished",
"status": "error",
"error": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.",
"summary": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.",
"runId": "manual:a3010186-77d7-4bff-967f-5f0ad09cd023:1778535503731:2",
"diagnostics": {
"summary": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.",
"entries": [
{
"ts": 1778535513535,
"source": "tool",
"severity": "error",
"message": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying."
},
{
"ts": 1778535513537,
"source": "agent-run",
"severity": "error",
"message": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying."
}
]
},
"runAtMs": 1778535503750,
"durationMs": 9789,
"nextRunAtMs": 1778544600000,
"model": "gpt-5.4",
"provider": "github-copilot",
"usage": {
"input_tokens": 310,
"output_tokens": 187,
"total_tokens": 2293
},
"delivered": false,
"deliveryStatus": "not-requested",
"delivery": {
"intended": {
"channel": "last",
"to": null,
"source": "last"
},
"fallbackUsed": false,
"delivered": false
},
"sessionId": "874325a1-8f24-4247-a520-4f9815b054c0",
"sessionKey": "agent:main:cron:a3010186-77d7-4bff-967f-
..<truncated>

slow starBOT
#

This second run makes it more suspicious that the agent turn is failing before/at finalization, not that blogwatcher produced a normal “no updates” result.

A few tells:

  • status: "error" again → cron considers this failed.
  • durationMs: 9789 → only ~10s, which is short for a real scan unless blogwatcher is tiny/cached.
  • input_tokens: 310 → the cron prompt/context for this manual run is very small.
  • delivered: false + deliveryStatus: "not-requested" is not the root problem; that just means no fallback announce was requested. The failure happened before delivery mattered.

The run history is only showing the wrapper error, so next step is the session transcript/log for this specific run:

openclaw logs --since 15m | grep -E '874325a1-8f24-4247-a520-4f9815b054c0|a3010186-77d7-4bff-967f-5f0ad09cd023|blogwatcher|toolUse|stopReason|incomplete|error'

Also please paste:

#
openclaw cron show a3010186-77d7-4bff-967f-5f0ad09cd023

What I’m looking for there:

  • the exact cron message / prompt
  • whether it has --tools restricted
  • whether it has --model gpt-5.4 pinned
  • whether it’s session isolated vs another session mode

If the prompt is something like “run blogwatcher scan” and relies on an MCP/tool/script, the likely failure mode is: model called a tool or attempted work, then GitHub Copilot/GPT-5.4 ended with no final assistant text, so OpenClaw marked it as an incomplete turn. A quick workaround to test is editing the cron prompt to force a final plain-text status, e.g. “After running, always respond with exactly: SUCCESS/NO_UPDATES/FAILED plus one sentence.”

lunar sapphire
#

openclaw cron show <guid>:
id: a3010186-77d7-4bff-967f-5f0ad09cd023
name: Blogwatcher scan - every 4 hours
enabled: yes
schedule: cron 10 */4 * * * @ America/New_York (exact)
session: isolated
agent: main
model: -
delivery: not requested (not requested)
next: in 2h
last: 28m ago
status: error
diagnostic: ⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.

I can't run the openclaw logs --since,
error: unknown option '--since'

slow starBOT
#

Yep, my bad — openclaw logs doesn’t have --since in 2026.5.7. Use --limit / --max-bytes instead:

openclaw logs --limit 1000 --max-bytes 1000000 --plain | grep -E '874325a1-8f24-4247-a520-4f9815b054c0|a3010186-77d7-4bff-967f-5f0ad09cd023|blogwatcher|toolUse|stopReason|incomplete|error'

Or watch a retry live:

openclaw logs --follow --plain
# in another terminal:
openclaw cron run a3010186-77d7-4bff-967f-5f0ad09cd023

That cron show output also reveals one thing: model: -, so the job itself is not pinned to gpt-5.4; it’s inheriting the main agent/default model, which resolved to GitHub Copilot GPT-5.4 during the run.

Next useful command:

#
openclaw cron get a3010186-77d7-4bff-967f-5f0ad09cd023

cron show hides the actual stored message/payload. cron get should show what the isolated job is asking the agent to do. I want to see whether the prompt gives the agent a clear final response requirement, and whether the scan is actually invoked by a command/tool or just described in natural language.

Docs for the corrected logs flags: https://docs.openclaw.ai/cli/logs

lunar sapphire
#

openclaw cron get <id>:
error: too many arguments for 'cron'. Expected 0 arguments but got 2.

slow starBOT
#

Ah, okay — use this instead:

openclaw cron show a3010186-77d7-4bff-967f-5f0ad09cd023 --json

If that’s too much, narrow it with jq:

openclaw cron show a3010186-77d7-4bff-967f-5f0ad09cd023 --json | jq '{id,name,schedule,sessionTarget,agentId,payload,delivery,status,state}'

The docs/source say openclaw cron get <job-id> should exist in this release, but your CLI is rejecting it even though cron show works. That’s either a CLI regression or docs drift — worth filing if openclaw cron --help also doesn’t list get: https://github.com/openclaw/openclaw/issues

For now show --json should give us the stored payload/message, which is the important bit for debugging this job.

lunar sapphire
#

terminal@ai-node1:~$ openclaw cron show a3010186-77d7-4bff-967f-5f0ad09cd023 --json | jq '{id,name,schedule,sessionTarget,agentId,payload,delivery,status,state}'
{
"id": "a3010186-77d7-4bff-967f-5f0ad09cd023",
"name": "Blogwatcher scan - every 4 hours",
"schedule": {
"kind": "cron",
"expr": "10 */4 * * *",
"tz": "America/New_York"
},
"sessionTarget": "isolated",
"agentId": "main",
"payload": {
"kind": "agentTurn",
"message": "Run blogwatcher scan --silent in /home/terminal/.openclaw/workspace and stop. This is a quiet collector job. Do not send chat output unless the scan fails in a way that needs human attention.",
"timeoutSeconds": 120,
"lightContext": true,
"toolsAllow": [
"exec"
]
},
"delivery": {
"mode": "none"
},
"status": "error",
"state": {
"nextRunAtMs": 1778602200000,
"lastRunAtMs": 1778587800015,
"lastRunStatus": "error",
"lastStatus": "error",
"lastDurationMs": 10288,
"lastDeliveryStatus": "not-requested",
"consecutiveErrors": 7,
"consecutiveSkipped": 0,
"lastDiagnostics": {
"summary": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.",
"entries": [
{
"ts": 1778587810299,
"source": "tool",
"severity": "error",
"message": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying."
},
{
"ts": 1778587810301,
"source": "agent-run",
"severity": "error",
"message": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying."
}
]
},
"lastDiagnosticSummary": "⚠️ Agent couldn't generate a response. Note: some tool actions may h...<truncated>,,,.

slow starBOT
#

That cron row is failing at the agent turn layer, not delivery — delivery.mode: "none" only suppresses fallback chat output. The run still has to produce a valid final assistant result.

Given your prompt says “stop / do not send chat output” and the command is --silent, I’d change the success path to OpenClaw’s silent token explicitly:

openclaw cron edit a3010186-77d7-4bff-967f-5f0ad09cd023 \
  --message 'Run `blogwatcher scan --silent` in /home/terminal/.openclaw/workspace. If it exits 0, reply exactly `NO_REPLY`. If it exits non-zero or throws, include the exit code and relevant stderr/stdout so a human can fix it.'

Then test it:

openclaw cron run a3010186-77d7-4bff-967f-5f0ad09cd023
openclaw cron runs --id a3010186-77d7-4bff-967f-5f0ad09cd023 --limit 5

If it still errors, please paste openclaw --version plus the latest cron runs entry. Version matters here because cron has had several fixes around isolated-run failures and silent/no-reply handling.