Consideration
When a job is submitted to run on FME Flow, it can remain listed indefinitely under Jobs > Queued in the FME Flow Web UI. Opening the job details shows an error stating that the log file does not exist.
These screenshots were captured in FME 2021.1. The interface may be different, but the concepts are the same.
Why This Happens
No Engines are available to run the job. Common causes include:
- The FME Flow Engines Service is not running.
- FME Flow is not licensed.
- The Engines cannot connect.
- The job was submitted to a user-defined queue with no Engines assigned.
- The Engines are occupied running other jobs.
This list covers the most common causes. It is not exhaustive.
How to Resolve It
Work through the following checks in order. If none resolve the issue, contact Safe Software Support and provide a copy of the logs folder from <FMEFlowSystemShare>\Resources.
1. Confirm the FME Flow Engines Service Is Running
Windows:
- Open Services (search for it from the Windows Start menu).
- Find FME Flow Engines Service and check the Status column. If the status is not Running, right-click the service and click Start.
Linux:
- Go to
<FMEFlowDir>/Server/. - Run
./startEngines.sh.
If the service does not start, restart all FME Flow services. Confirm that the account running the service has read and write permissions to the FME Flow install directory and the system share. See the Directory and Account Permissions documentation for details.
2. Check That FME Flow Is Licensed
In FME Flow, go to Admin > System Configuration > Licensing to confirm FME Flow is licensed.
If FME Flow is not licensed, follow the Request and Install a License documentation to request one. You need your serial number to complete this step. If you do not have a license or do not know your serial number, contact your Safe Software account manager or sales@safe.com.
If the license request fails, see the FME Flow licensing troubleshooting guide.
3. Check That the Engines Can Connect
Several issues can prevent Engines from connecting. Review the fmeserver.log file in <FMEFlowSystemShare>\Resources\Logs\Core\Current and the fmeprocessmonitorengine.log file in <FMEFlowSystemShare>\Resources\Logs\Engine\Current for more detail.
- Engine count is zero: In FME Flow, go to the Engines page and check the Hosts panel. Confirm the engine count is greater than 0. If it already shows a number, set it to 0 and back up again.
- FME Flow reports unlicensed on this page: If the Engines page is slow to load and then reports FME Flow is unlicensed, even though licensing was confirmed in step 2, this points to a permissions issue accessing the license file. This has been seen on Linux when FME Flow is installed on a port below 1024, which causes the web application to run as root instead of as the fmeserver user. Reinstall FME Flow using a higher port, such as 8080.
- No hosts are listed: The Hosts panel on the Engines page should list every host where the FME Flow Engines Service is installed. If a host is missing, confirm that the FME Flow Ports are open.
- Distributed Engines cannot reach the core: If Engines run on a separate machine from the core in a distributed installation, confirm a firewall is not blocking access. If a strict firewall policy is in place, set up a dedicated port pool for the Engines. Follow the instructions under "Defining an Ephemeral Port Range" in the FME Flow Ports documentation linked above.
-
Failed to connect to job queue: This can happen when memurai.exe (FME Flow 2023+) or redis-server.exe (earlier FME Flow versions) does not start. This is usually because the queue folder is missing from
<FMEFlowSystemShare>\Resources\Logs, or the account running FME Flow services does not have permission to write to that folder. See this article for more information.
4. Confirm the Queue Has Engines Assigned
If jobs ran successfully before you set up a new Queue and some jobs are now stuck, the Queue may not be configured correctly.
In FME Flow, go to Engine Management > Engines and confirm the Queue name is listed next to at least one Engine. If it is not, assign it under the Engine Assignment Rules tab.
5. Check Whether the Engines Are Occupied
Each Engine processes one job at a time. If all Engines are occupied, jobs wait in the Queue until one becomes available. To check for available Engines, go to the Engines page and review the Current Jobs field. A job ID appears there if the Engine is currently running a job.
If FME Flow has only one Engine, and a job containing an FMEFlowJobSubmitter transformer runs with Submission Mode set to In Parallel and Wait for Jobs to Complete set to Yes, FME Flow can enter a locked state. In this scenario, the Engine is occupied running the parent job while it waits for the child jobs to finish, but the child jobs cannot run because no other Engine is available. Consider one of these alternatives instead:
- Set Submission Mode to In Sequence. This starts temporary sub-engine processes to run the child jobs.
- Set Wait for Jobs to Complete to No. This ends the parent translation and frees the Engine to run the child jobs. This means the parent workspace cannot process the results of the child jobs afterward.
- Use Automations to chain the jobs. Use the Merge action to run any post-processing once all workspaces finish.
Additional Resources
- FME Community Forum
- Safe Software Support
- Documentation: FME Flow Ports
- Documentation: Request and Install a License
- Documentation: Directory and Account Permissions