Senior 3 min · March 19, 2026

AutoSys Status Codes — PEND_MACH Disk Space Trap

47 jobs stuck in PE status? A full /var partition silently kills the Remote Agent.

N
Naren · Founder
Plain-English first. Then code. Then the interview question.
About
 ● Production Incident 🔎 Debug Guide
Quick Answer
  • SUCCESS (SU): Job completed with exit code 0. Normal. No action.
  • FAILURE (FA): Job exited non-zero. Check std_err_file before restarting.
  • RUNNING (RU): Job executing. Monitor runtime vs expected duration.
  • PEND_MACH (PE): Agent unreachable. First check: disk space on agent (df -h).
  • ON_HOLD (OH): Manually held. OFF_HOLD starts immediately if conditions met.
  • ON_ICE (OI): Suspended. OFF_ICE waits for next scheduling cycle.
  • ACTIVATED (AC): Job inside RUNNING box, waiting its turn. Normal.
  • TERMINATED (TE): Job killed (term_run_time or KILLJOB). Investigate why.
  • Production rule: 20+ jobs in PEND_MACH on same machine = disk full. Clear space, restart agent.
Plain-English First

AutoSys job statuses are like package tracking codes — each status tells you exactly where your job is in its lifecycle. RUNNING means it's on the truck. SUCCESS means it was delivered. FAILURE means something went wrong. PEND_MACH means the truck broke down.

You'll stare at autorep output every day. SU, FA, RU, OH, OI, PE, TE, AC, IN, ST, QU, RE.

That's 12 status codes. Some are normal. Some need immediate action. Some are traps that operations teams misinterpret for hours.

This article covers each status — what it means, what causes it, and exactly what to do. The difference between ON_HOLD and ON_ICE appears in every AutoSys interview. Master it here.

Normal lifecycle statuses

These are the statuses a job moves through during a healthy execution. You should see them regularly and not be alarmed.

INACTIVE (IN): Job hasn't been triggered yet. Waiting for its schedule or conditions. This is the starting state for most scheduled jobs.

ACTIVATED (AC): The job's parent BOX is in RUNNING state, but the job itself hasn't started yet because its own conditions aren't met. This is normal — it means the box is active and the job is queued.

STARTING (ST): Brief transition state. The Event Processor sent the start command to the agent, and the agent is spinning up the process. Usually lasts under 3 seconds.

RUNNING (RU): Job is executing on the agent machine. Monitor runtime against expected duration. A job that runs 4x longer than usual may be hung.

SUCCESS (SU): Job completed with exit code 0. Normal completion. No action needed.

RESTART (RE): Job is being automatically retried after a failure (n_retrys configured). This is normal for jobs with retry logic. Only be concerned if the final attempt also fails.

check_status.shBASH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Check status of a single job
autorep -J daily_report

# Check status with full details (start/end times, exit code)
autorep -J daily_report -d

# List all jobs and their current status
autorep -J %

# Filter by status (SU = SUCCESS, FA = FAILURE, RU = RUNNING)
autorep -J % -s SU
autorep -J % -s FA
autorep -J % -s RU

# Check if a job is hung (running longer than expected)
autorep -J long_job -d | grep "Run Time"
Output
Job Name ST Exit Start Time End Time
------------------------------------------------------------
daily_report SU 0 03/19/2026 02:00:01 03/19/2026 02:08:43
weekly_reconcile FA 1 03/19/2026 03:00:00 03/19/2026 03:01:22
monthly_summary OH -- -- --
The Package Tracking Model
  • INACTIVE → ACTIVATED → STARTING → RUNNING → SUCCESS (normal flow)
  • FAILURE, TERMINATED, PEND_MACH = delivery exceptions
  • ON_HOLD/ON_ICE = manual holds (customer requested hold)
  • The Event Processor is the dispatch center. Agents are the delivery trucks.
Production Insight
A team saw a job in ACTIVATED status for 3 hours and assumed it was stuck. They force-started it. The job ran and failed because its dependency hadn't completed yet. The original job would have started 10 minutes later when the dependency finished.
ACTIVATED is not stuck. It means 'waiting for conditions inside a running box'. The job was fine. The team's impatience caused a failure.
Rule: ACTIVATED only becomes a problem if the parent box has been RUNNING for longer than the expected total duration of all jobs in the box. Otherwise, it's normal.
Key Takeaway
IN → AC → ST → RU → SU is normal job lifecycle.
ACTIVATED means 'waiting inside running box', not stuck.
RUNNING for 2x expected = possibly hung.
SUCCESS doesn't guarantee correct output — validate separately.
Is this status normal or a problem?
IfJob in ACTIVATED for < 1 hour, box still RUNNING
UseNormal. Job is waiting for its conditions inside the box.
IfJob in RUNNING for > 2x expected duration
UseProbably hung. Investigate. May need KILLJOB.
IfJob in PEND_MACH, other jobs on same machine also PEND_MACH
UseProblem. Agent machine likely down or disk full. Check immediately.
IfJob in FAILURE, first time in weeks
UseProblem. Investigate root cause before restarting.
AutoSys Job Status Lifecycle — All Status Codes State machine diagram showing all AutoSys job statuses: INACTIVE, ACTIVATED, STARTING, RUNNING, SUCCESS, FAILURE, ON_HOLD, ON_ICE, PEND_MACH, TERMINATED with transition arrows. THECODEFORGE.IOJob Status LifecycleEvery AutoSys status code and transition INACTIVE ACTIVATED STARTING RUNNING SUCCESS FAILURE ON_HOLD ON_ICE PEND_MACH TERMINATEDTHECODEFORGE.IO
thecodeforge.io
AutoSys Job Status Lifecycle — All Status Codes
Autosys Job Status Codes

All status codes with abbreviations

The autorep command uses two-letter abbreviations for status codes. Here they all are, including the less common ones:

Normal/Interim: AC (ACTIVATED), IN (INACTIVE), ST (STARTING), RU (RUNNING), SU (SUCCESS), RE (RESTART)

Problem/Unusual: FA (FAILURE), PE (PEND_MACH), TE (TERMINATED), QU (QUE_WAIT)

Manual holds: OH (ON_HOLD), OI (ON_ICE)

Less common: DE (DELAYED — job waiting for start time), OP (OPERATOR — operator held), SP (STOPPED), UP (UP STREAM — waiting on upstream), WD (WAIT_DEP — waiting on file watcher)

The difference between ON_HOLD and ON_ICE is the most misunderstood. ON_HOLD + OFF_HOLD = start immediately if conditions met. ON_ICE + OFF_ICE = wait for next scheduling cycle.

status_abbreviations.txtBASH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
AC  ACTIVATED    -- Box is RUNNING but this job hasn't started yet
DE  DELAYED      -- Job waiting to meet its start time criteria
FA  FAILURE      -- Job completed with non-zero exit code
IN  INACTIVE     -- Job hasn't been triggered; waiting for schedule
OH  ON_HOLD      -- Manually held; won't run until released
OI  ON_ICE       -- Suspended; won't run even when conditions reappear
OP  OPERATOR     -- Operator held (sendevent -E HOLDJOB)
PE  PEND_MACH    -- Waiting for target machine (agent offline)
QU  QUE_WAIT     -- Waiting for available machine load/resources
RE  RESTART      -- Job is being restarted after failure
RU  RUNNING      -- Job is currently executing
ST  STARTING     -- Job sent to agent; waiting for execution to begin
SU  SUCCESS      -- Job completed with exit code 0
TE  TERMINATED   -- Job was killed (term_run_time, KILLJOB event, etc.)
UP  UP_STREAM    -- Waiting on upstream dependencies
WD  WAIT_DEP     -- Waiting on file watcher condition
ON_HOLD vs ON_ICE — the most misunderstood difference
ON_HOLD: OFF_HOLD starts job immediately if conditions are currently satisfied. ON_ICE: OFF_ICE does NOT start immediately — it waits for conditions to reoccur in the next scheduling cycle. This difference causes major operational confusion.
Production Insight
A financial firm put a midnight reporting job ON_ICE at 2 PM to prevent it from running during database maintenance. After maintenance finished at 4 PM, they did OFF_ICE expecting it to run immediately. It didn't. The job ran at midnight as originally scheduled. The report was 8 hours late.
The team confused ON_ICE with ON_HOLD. They should have used ON_HOLD for a temporary pause during business hours.
Rule: Use ON_HOLD when you want the job to run as soon as you're ready. Use ON_ICE when you want the job to return to its normal schedule without running out-of-cycle.
Key Takeaway
ON_HOLD + OFF_HOLD = immediate start (if conditions met).
ON_ICE + OFF_ICE = next scheduled cycle only.
Use ON_HOLD for temporary pauses (maintenance, migrations).
Use ON_ICE for permanent schedule changes or to prevent out-of-cycle runs.

The problem statuses and what to do

These statuses almost always require your attention. Each has a specific diagnosis path.

problem_statuses.shBASH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# ── FAILURE: job failed ──────────────────────────────────────────
# Check the error log first
cat /logs/autosys/daily_report.err
# Then check the event log
autorep -J daily_report -d
# Review recent runs
autorep -J daily_report -run 7
# Retry after fixing the underlying issue
sendevent -E FORCE_STARTJOB -J daily_report

# ── PEND_MACH: agent machine offline ─────────────────────────────
# First: check disk space on agent (MOST COMMON)
ssh prod-server-01 'df -h'
# Then check agent status
autoping -m prod-server-01
autorep -M prod-server-01
# Restart agent after fixing issue
/opt/CA/agent/bin/agent_start

# ── TERMINATED: job was killed ────────────────────────────────────
# Check if killed by term_run_time or manually
autorep -J slow_job -d | grep -E 'term_run_time|KILLJOB'
# If due to term_run_time, increase it:
update_job: slow_job
term_run_time: 180

# ── QUE_WAIT: machine overloaded ──────────────────────────────────
# Check machine load limits
autorep -M machine-name
autorep -J jobname -q | grep load
Output
FAILURE — Error in /logs/autosys/daily_report.err:
ERROR: Database connection timeout after 30s
PEND_MACH — prod-server-01: MISSING (agent service down)
Disk usage on prod-server-01: /apps 100% full — agent stopped
TERMINATED — term_run_time: 60 (exceeded). Job ran for 62 minutes.
QUE_WAIT vs PEND_MACH — subtle but important difference
PEND_MACH = agent unreachable (machine down or agent stopped). QUE_WAIT = agent reachable but machine too busy (load exceeds max_load). QUE_WAIT resolves automatically when load drops. PEND_MACH requires intervention.
Production Insight
A team saw a job in QUE_WAIT and assumed the agent was down. They restarted the agent, which cleared the queue, but the underlying high load was caused by a different job consuming all CPU. The high-load job continued to run, and QUE_WAIT returned immediately.
QUE_WAIT doesn't mean 'agent broken'. It means 'machine is too busy right now'. AutoSys is protecting the machine from overload.
Diagnosis: autorep -M machine-name shows the max_load setting and current load. If load > max_load, jobs wait.
Fix: Increase max_load on the machine definition, or reduce load from other jobs. Don't restart the agent — that doesn't solve the load issue.
Rule: QUE_WAIT = load problem. PEND_MACH = agent/network problem. Don't confuse them.
Key Takeaway
FAILURE: Check error log first. Never restart without investigating.
PEND_MACH: First check disk space (df -h). 90% of cases.
TERMINATED: term_run_time or KILLJOB. Increase runtime or fix hang.
QUE_WAIT: Machine overload. Increase max_load or reduce load.
● Production incidentPOST-MORTEMseverity: high

The 2 AM PEND_MACH That Wasn't a Network Problem

Symptom
autorep shows 47 jobs all with PE status on the same agent machine. autoping -m agent-host returns MISSING. No recent changes to network or firewall.
Assumption
The engineer assumed network or firewall because 'agent unreachable' sounds like connectivity. They didn't check the most common cause first.
Root cause
The Remote Agent service writes logs to /var/log/autosys. When /var fills 100%, the agent process stops. The agent doesn't crash with an error — it just exits. AutoSys's Event Processor keeps trying to contact it, sees no response, and leaves jobs in PEND_MACH. The agent machine had a 20GB /var partition. Log rotation failed 3 days ago. The partition filled completely.
Fix
1. SSH to agent machine: ssh agent-host 2. df -h → /var 100% used 3. Find large files: du -sh /var/log/* | sort -h 4. Rotate or delete old logs: sudo logrotate -f /etc/logrotate.conf 5. Restart agent: /opt/CA/WorkloadAutomationAE/agent/bin/agent_start 6. Verify: autoping -m agent-host → ACTIVE 7. Jobs will auto-resume from PEND_MACH to RUNNING Prevention: Set up disk space monitoring at 80% for agent machines. Auto-rotate logs weekly.
Key lesson
  • PEND_MACH on multiple jobs → same machine → disk space is #1 cause.
  • Diagnosis order: disk space → agent process → network → everything else.
  • df -h is the first command, not the last. It saves hours.
  • Agent machines need disk monitoring. Full disk stops the agent silently.
Production debug guideFA, PE, TE, OH/OI — the statuses that need your attention4 entries
Symptom · 01
FAILURE (FA) — job exited with non-zero code
Fix
1. Check std_err_file in job definition. 2. autorep -J JOB -L 10 (last runs). 3. Fix root cause (code, missing file, permission). 4. FORCE_STARTJOB after fix.
Symptom · 02
PEND_MACH (PE) — agent unreachable
Fix
1. ssh agent-host, df -h (full disk = #1). 2. ps -ef | grep autosys (agent running?). 3. autoping -m AGENT (from server). 4. Clear disk space, restart agent.
Symptom · 03
TERMINATED (TE) — job was killed
Fix
1. autorep -J JOB -d | grep term_run_time (expired?). 2. Check if KILLJOB was sent manually. 3. Increase term_run_time or fix hang reason. 4. RESTART job.
Symptom · 04
ON_HOLD (OH) or ON_ICE (OI) — job intentionally held
Fix
1. Verify hold is intentional (sendevent history). 2. OFF_HOLD: sendevent -E OFF_HOLD -J JOB (runs immediately if conditions met). 3. OFF_ICE: sendevent -E OFF_ICE -J JOB (waits for next schedule).
★ Status Codes — 60-Second DiagnosisRun these commands when you see problem statuses
FAILURE — find why
Immediate action
Check error file and last runs
Commands
autorep -J JOBNAME -q | grep std_err_file
autorep -J JOBNAME -L 10 | grep -A 5 FAILURE
Fix now
cat /path/to/error/file
PEND_MACH — check disk first+
Immediate action
SSH to agent, check disk space
Commands
ssh agent-host 'df -h'
autoping -m agent-host
Fix now
Clean disk space, restart agent
Check if job is ON_HOLD or ON_ICE+
Immediate action
View job status and release
Commands
autorep -J JOBNAME | grep -E 'OH|OI'
sendevent -E OFF_HOLD -J JOBNAME (or OFF_ICE)
Fix now
Verify if hold was intentional before releasing
Job stuck at ACTIVATED too long+
Immediate action
Check conditions and parent box
Commands
autorep -J JOBNAME -q | grep condition
autorep -J PARENT_BOX -d | grep status
Fix now
Check why conditions aren't met
AutoSys Status Codes — Complete Reference
StatusAbbrev.Normal or problem?Typical causeAction needed?
INACTIVEINNormalWaiting for schedule/conditionsNo
ACTIVATEDACNormalBox is RUNNING, job waiting its turnNo — but monitor if box runs too long
STARTINGSTNormalAgent spinning up processNo — brief transition
RUNNINGRUNormalJob executingNo — but monitor duration
SUCCESSSUNormalExit code 0No
FAILUREFAProblemNon-zero exit codeYes — investigate and fix
ON_HOLDOHNormal (if intentional)Manual hold (sendevent)Check if intentional
ON_ICEOINormal (if intentional)Manual freeze (sendevent)Check if intentional
PEND_MACHPEProblemAgent unreachable (full disk #1)Yes — check agent machine
QUE_WAITQUPossible problemMachine load > max_loadMonitor — resolves automatically
TERMINATEDTEProblem (usually)Killed by term_run_time or manualInvestigate cause
RESTARTRENormalAuto-retry after failureMonitor for continued failure

Key takeaways

1
PEND_MACH = agent unreachable. First check
disk space (df -h). 90% of cases.
2
ON_HOLD + OFF_HOLD = immediate start. ON_ICE + OFF_ICE = next cycle only. Master this difference.
3
ACTIVATED is normal
job waiting inside running box. Don't force-start it.
4
FAILURE requires investigation before restart. Check error log first, always.
5
QUE_WAIT = machine overload. PEND_MACH = agent unreachable. Don't confuse them.
6
TERMINATED = job was killed. Check if term_run_time or manual KILLJOB.
7
autorep -d shows detail (start/end times). autorep -q shows JIL definition. Use both.

Common mistakes to avoid

5 patterns
×

Confusing ON_HOLD and ON_ICE

Symptom
A job is put ON_ICE during maintenance. After maintenance, OFF_ICE is issued. The job doesn't start. Team assumes AutoSys is broken. The job runs at its scheduled time hours later.
Fix
ON_HOLD: release starts immediately if conditions met. ON_ICE: release waits for next scheduling cycle. Use ON_HOLD for temporary pauses during business hours.
×

Not checking PEND_MACH machine disk space first

Symptom
Engineer spends 2 hours checking network routes, firewalls, agent config. The cause is a 100% full /var partition. df -h would have shown it in 10 seconds.
Fix
For PEND_MACH, always run df -h on the agent machine first. Full disk is the cause in 90% of cases. Only then check network and agent process.
×

Restarting jobs in FAILURE without first reading the error log

Symptom
Job fails. Engineer force-starts it immediately. It fails again. Repeat 5 times. The error log shows 'database connection timeout'. The database is down. Restarting won't help.
Fix
Before any restart, check std_err_file or autorep -L. Understand why it failed. Fix the root cause, then restart once.
×

Not distinguishing INACTIVE from ON_ICE

Symptom
Team sees a job in INACTIVE and thinks it's frozen. They force-start it, but it was just waiting for its schedule. It runs early and processes incomplete data.
Fix
INACTIVE is normal — the job hasn't met its start conditions yet. It's not an error. Check start_times and conditions before intervening.
×

Treating ACTIVATED as a stuck state

Symptom
Job in ACTIVATED for 2 hours. Team force-starts it. The job's dependency wasn't ready. The job fails. The original job would have started correctly 10 minutes later.
Fix
ACTIVATED means 'waiting inside a running box'. It's not stuck unless the parent box has been running longer than the total expected duration of all jobs in the box.
INTERVIEW PREP · PRACTICE MODE

Interview Questions on This Topic

Q01SENIOR
What does PEND_MACH status mean in AutoSys?
Q02SENIOR
What is the difference between ON_HOLD and ON_ICE in AutoSys?
Q03JUNIOR
What does ACTIVATED status mean for a job inside a BOX?
Q04SENIOR
How do you force-start a job that is in FAILURE status?
Q05SENIOR
What is the most common cause of jobs going to PEND_MACH in bulk?
Q06SENIOR
What does QUE_WAIT status mean and how is it different from PEND_MACH?
Q01 of 06SENIOR

What does PEND_MACH status mean in AutoSys?

ANSWER
PEND_MACH (PE) means the job is waiting for its target machine to become available. The Remote Agent on that machine is not responding to the Event Processor. Most common cause (90% of cases): The agent machine's filesystem is 100% full, causing the agent service to stop. Other causes: - Agent service not running - Machine offline - Network issue (firewall blocking port 7520) - Agent machine overloaded (different from QUE_WAIT) Diagnosis order: 1. SSH to agent machine: df -h (check disk space) 2. Check agent process: ps -ef | grep autosys 3. Test connectivity: autoping -m agent-host Fix: Clear disk space, restart agent, or fix network issue.
FAQ · 6 QUESTIONS

Frequently Asked Questions

01
What does PEND_MACH mean in AutoSys?
02
What does ACTIVATED mean in AutoSys?
03
What is the difference between ON_HOLD and ON_ICE?
04
How do I restart a failed AutoSys job?
05
What does TERMINATED status mean in AutoSys?
06
What does QUE_WAIT mean and how is it different from PEND_MACH?
COMPLETE GUIDE
The Complete AutoSys Workload Automation Guide for Engineers →

JIL syntax, sendevent, autorep, box jobs, file watchers, scheduling, HA, security, cloud workload automation, and 22 interview questions — the definitive AutoSys reference for production engineers.

🔥

That's AutoSys. Mark it forged?

3 min read · try the examples if you haven't

Previous
AutoSys date_conditions and run_window
18 / 30 · AutoSys
Next
AutoSys sendevent Command