Skip to main content

System Status

System Status is a platform-admin tool for monitoring the background job queue and worker health across the entire Ascent platform. It shows what scheduled jobs are wired up, which workers are alive, how individual job types are performing, and provides manual cleanup controls for the queue.

Overview

System Status lets you:

  • See every recurring background job, its schedule, priority, and next run time
  • Trigger any recurring job on demand with Run now
  • Review the last 50 job executions and their outcomes
  • Monitor live worker processes (status, uptime, throughput, and the job each is currently running)
  • View queue-wide counts (active, pending, completed, failed, retry)
  • Inspect per-job success rate and duration percentiles over the last 24 hours
  • Run manual queue cleanup tools (janitor, fail active, cancel pending)

Go to PlatformSystem Status (/platform/system-status).

This page is part of the platform-admin surface, not the org app. It is only available to operators with the Platform Admin role. Organization owners and admins cannot see it. (The old org-level /admin/system-status route now redirects to Email Queue, which still holds per-organization outbound email delivery data.)

The page polls for fresh data every 30 seconds. You can also force an immediate refresh with the Refresh button in the header.

Background Jobs tab

Scheduled Jobs

Lists every recurring job registered with the queue, drawn from Ascent's central schedule definitions.

ColumnWhat it shows
JobInternal job type / queue name
DescriptionWhat the job does (and an expiration note when the job is dropped if it sits in the queue too long)
ScheduleA friendly description (e.g. Every minute, Daily at 6:00 AM) plus the raw cron expression
PriorityHigh, Normal, or Low — higher-priority jobs are picked up first
Next RunRelative time until the next scheduled run, plus the exact timestamp
PendingNumber of queued instances of this job waiting for a worker
ActionsRun now to trigger the job immediately

A non-zero Pending count usually means a job is fanning out per organization, or that workers were briefly offline and ticks queued up. A large pending count is highlighted in red.

Run now queues a one-off run of the selected recurring job. Only recurring (scheduled) jobs can be triggered this way; on-demand jobs that need parameters cannot.

Job Management

Manual cleanup tools. The queue janitor runs automatically every 15 minutes, so these are rarely needed.

ButtonWhat it does
Run Janitor NowFails active jobs stuck more than 15 minutes, cancels pending jobs older than 1 hour, deletes completed jobs older than 1 hour, deletes failed jobs older than 7 days, reaps dead workers not seen in 5 minutes, and expires old idempotency tokens
Fail Active JobsForce-fails every currently running job. Use only when workers are stuck and need a restart
Cancel All PendingDrops every queued (pending) job. Schedules automatically recreate recurring jobs on the next tick

Fail Active Jobs and Cancel All Pending both prompt for confirmation before running.

Recent Job History

Shows the last 50 job executions across all job types.

ColumnWhat it shows
JobThe job type that ran
StateCompleted, Failed, Running, Retry, or Pending
CreatedWhen the job was enqueued
CompletedWhen the job finished (if it has)
RetriesNumber of retry attempts

Workers tab

Queue totals

Five summary cards across the top show queue-wide job counts:

  • Active — jobs currently being processed
  • Pending — jobs queued and waiting
  • Completed — finished successfully
  • Failed — finished in error
  • Retry — waiting to be retried

Worker Status

Live data sourced from each worker's heartbeat. Every worker writes a heartbeat roughly every 10 seconds; a worker not seen within the staleness window (60 seconds) is shown as Offline.

ColumnWhat it shows
WorkerWorker ID, plus hostname and process ID when available
ModeThe worker's app mode (see below)
VersionThe Ascent build version the worker is running
StatusOnline or Offline
UptimeHow long the worker has been running
ProcessedTotal jobs the worker has processed
FailedTotal jobs the worker has failed (highlighted when non-zero)
Now RunningThe job the worker is currently executing, with elapsed time, or idle
Last SeenRelative time since the worker's last heartbeat

If no workers appear, none have booted yet (or all are offline).

App modes

ModeMeaning
allServer and worker run together (typical for development)
serverHTTP API only — workers run as separate containers
workerBackground jobs only — connected to the same queue

Metrics (24h) tab

Per-job-type performance over the last 24 hours, useful for spotting slow or failing jobs when the queue backs up.

ColumnWhat it shows
JobThe job type
RunsTotal runs in the window, with a failure count when any failed
Success RatePercentage of runs that completed successfully (green at 99%+, neutral at 90%+, red below)
p50 durationMedian run duration
p95 duration95th-percentile run duration
MaxLongest run duration
Last RunRelative time since the most recent run

Only terminal runs (completed or failed) within the last 24 hours are counted.

Tips

  • Start with the Metrics (24h) tab when the queue is backed up — a job with a low success rate or a high p95 duration is usually the cause.
  • Use Run now to validate a recurring job after changing related configuration, rather than waiting for its next scheduled tick.
  • The automatic janitor handles routine cleanup; reach for the manual Job Management tools only when something is visibly stuck.