Scheduled Sume run missing from /v1/jobs: it is not a job
A schedule run is not a generation job, so it never appears in /v1/jobs and jobs_wait cannot wait on it. Read it from /v1/action-runs/{run_id} instead.

A scheduled run does not appear in /v1/jobs because it is not a generation job. Sume's docs say it does not use the job lifecycle at all. You read it from /v1/action-runs/{run_id}, and jobs_wait and jobs_list are the wrong tools for it. The run may start generation jobs while it works, but the run itself is an Agent doing saved instructions in a fresh thread.
Run versus job
This table is condensed from the Scheduled page. The statuses list is the one point that matters in code: a run can end as skipped, which a job never does.
| Schedule run | Generation job | |
|---|---|---|
| Started by | A cron schedule, or POST /v1/actions/{action_id}/runs | POST /v1/{family}-1.0/... |
| Unit of work | Saved instructions an Agent executes in a new thread | One model invocation |
| Read back from | /v1/action-runs/{run_id} | /v1/jobs/{id} |
| Statuses | queued, processing, completed, failed, canceled, skipped | See Jobs and results |
| Overlap policy | on_active_run: skip or reject | None |
What to build
Poll the run's receipt, not the job list. Do not look for the run in a jobs dashboard, and do not try to attach a jobs_wait to a run id. If you want to see what the run generated, read its output and artifacts once it completes.
The docs also say the receipt's events_url is always null today. Use status_url and result_url instead, and do not build a progress bar on events.
- Check for
skippedas a normal outcome when the overlap policy isskip. - Treat
failedandcanceledas separate fromskippedin alerts. - Reading generation jobs started by a run is a separate step, with the job ids the run produced.
The tradeoff
Separating runs from jobs keeps a schedule's own life cycle, with overlap rules and a spend cap, apart from single model calls. The cost is that you now have two places to look when a scheduled output seems wrong. Start with the run's status and output, and only then look at generation jobs.
A practical alert rule follows from this. Page someone on failed runs, log skipped runs at a lower level, and keep a count of how many generation jobs each run started. If the counts drift from what you expect, open the run's output first, because the run's instructions, not the job queue, decide what gets generated.
Sources
Related posts
More in Agents
- Skipped Sume scheduled run: no webhook, read the create response
A skipped or canceled Sume run sends no webhook. For api-trigger, on_active_run=skip is the default, so check the create response, not just your webhook inbox.
- Did my Sume cron schedule fire? Read last_run_at and next_run_at
GET /v1/actions/{id} returns last_run_at and cron.next_run_at. Compare them with the run list to see if a schedule fired, without opening the dashboard.
- Sume schedule slug rules: 2-64 characters, and runs is reserved
A Sume schedule slug is lowercase alphanumerics with single hyphens, 2 to 64 characters, unique in your account. The word runs is reserved. See the vanity path.
- trending-research_search MCP tool: Reels and TikTok trends, $0.10
The hosted MCP tool trending-research_search finds trending Instagram Reels and TikTok videos for a niche at about $0.10 per search. YouTube is not supported.
Written by Sume