You submitted an Oracle Fusion scheduled process and it has been stuck in “Running” or “Wait” status for hours. Maybe it is the Create Accounting job blocking your month-end close. Maybe it is the Payroll Calculate Payroll process holding up your entire pay cycle. Maybe it is an AP Import that ran fine last week and now will not finish. Whatever the process, you need it to complete—and Oracle Fusion is not telling you why it will not.

I have troubleshot stuck ESS (Enterprise Scheduler Service) processes across Oracle Fusion implementations of every size. Here is a systematic approach to diagnosing the issue, unsticking the process, and preventing recurrence.

Why Scheduled Processes Get Stuck

Oracle Fusion runs scheduled processes through ESS, an asynchronous job framework. When you submit a process from the Scheduled Processes work area, ESS queues it, assigns it to an available processing thread, and executes it. A process gets “stuck” when something prevents it from completing normally. The five most common causes:

1. Data volume or processing bottleneck

The process is not actually stuck—it is processing a very large data set and running far longer than expected. This is common with processes like Create Accounting, Import Journals, or Generate Payments when the batch size is unusually large. The process is working but has no progress indicator, so it looks frozen.

2. Data lock contention

The process is trying to update records that are locked by another transaction or another running process. For example, two concurrent instances of the same process operating on overlapping data sets. Oracle Fusion does not always handle lock contention gracefully at the ESS level—the process may sit in a wait state indefinitely rather than timing out.

3. Incompatible concurrent processes

Certain Oracle Fusion processes have built-in incompatibilities. They cannot run at the same time as other specific processes. If an incompatible process is already running, the new submission will sit in “Wait” status until the incompatible process completes. The common example: you cannot run Create Accounting and Post Journals concurrently for the same ledger. If Post Journals is running, Create Accounting will wait.

4. Parameter or data errors

The process encounters an error during execution but does not fail cleanly. Instead of moving to “Error” status, it hangs in “Running.” This often happens when the process encounters corrupt data, an invalid parameter combination, or an unexpected null value in a required field. The process keeps retrying the failed operation internally without surfacing the error.

5. ESS infrastructure issues

The ESS server itself has a problem—thread pool exhaustion, memory pressure, or a stalled worker node. This is more common in environments with heavy batch processing loads or during Oracle Cloud maintenance windows. When ESS infrastructure is the cause, multiple processes across different modules will be stuck simultaneously.

How to Check the Status and Diagnose

  1. Navigate to Scheduled Processes. Go to Navigator > Tools > Scheduled Processes. Find your process by Process ID or name. Note the current status, the submission time, and the elapsed time.
  2. Check the process log. Click on the process ID to open details. Look at the Log and Output tabs. If the process has been writing output or log entries recently, it is still running (not stuck). If the last log entry was hours ago, the process is likely genuinely stuck.
  3. Check for incompatible processes. Look at other processes that are currently running in the same module. If you see a process that is known to be incompatible with yours, that is your answer—your process will not start until the other one finishes.
  4. Review the data scope. Check the parameters that were submitted with the process. Is it processing all records (no date filter, no business unit filter) when it should be processing a specific subset? An unfiltered process may be attempting to process millions of records.
  5. Check for concurrent duplicates. Search for other instances of the same process that are also in Running or Wait status. Duplicate submissions are a common cause of lock contention.

How to Cancel or Restart a Stuck Process

Cancel from the UI

In the Scheduled Processes work area, select the stuck process and click “Cancel Process.” If the cancel request is accepted, the process will move to “Cancelled” status. Note that cancellation is not instant—ESS needs to interrupt the running thread, which can take a few minutes.

When cancel does not work

Sometimes the Cancel button has no effect. The process remains in Running status even after the cancel request. This happens when the ESS thread is unresponsive or when the process is stuck in a database-level operation that cannot be interrupted from the application layer. In this case:

  1. Wait 15–30 minutes after the cancel request. ESS retries cancellation periodically. Some processes take time to reach a cancellable checkpoint.
  2. Submit an Oracle SR. If the process is on Oracle Cloud (SaaS), you do not have database-level access to kill sessions. Open a Service Request with Oracle Support, provide the Process ID and ESS Job ID, and request manual termination. For critical processes (payroll, month-end close), escalate the SR immediately.
  3. For Oracle Cloud customers, use the “Force Cancel” option if available. Some Oracle Fusion updates have added a Force Cancel capability for administrators. Check if your update level includes this feature.

After cancellation: resubmit safely

Before resubmitting the process, verify that no duplicate is still running. Check that any data locks from the previous run have been released. If the process was a data import (AP Import, Journal Import), check for partially imported records that may need to be cleaned up before rerunning.

Preventing Recurring Stuck Processes

  • Schedule incompatible processes sequentially. Use process sets or job chains to ensure that incompatible processes run one after another, not concurrently. Oracle Fusion’s Process Set feature lets you define sequential dependencies.
  • Add appropriate filters to parameters. Never run a large batch process with “All” parameters if you can scope it to a specific business unit, ledger, or date range. Smaller batches complete faster and are less likely to encounter lock contention.
  • Monitor ESS job history. If a process that normally takes 10 minutes starts taking 2 hours, investigate before it gets stuck entirely. Increasing run times often indicate growing data volumes or a developing configuration issue.
  • Avoid submitting the same process multiple times. If a process appears slow, do not submit it again. Check the existing submission first. Multiple concurrent instances of the same process almost always make the problem worse.

When It Needs a Configuration Fix

If the same process gets stuck repeatedly, the root cause is usually not operational—it is structural. Common configuration-level causes include misconfigured subledger accounting rules that generate invalid journal entries, approval workflows that loop indefinitely, or data conversion artifacts from go-live that cause processing exceptions. A Stabilization Sprint can diagnose the underlying configuration issue and resolve it, typically in 1–2 weeks. You get a fix, not a workaround.