Introduction
The FME Flow REST API V4 /healthcheck requests return the operational status of FME Flow's critical components. A request can be made to check for either “Liveness” or “Readiness”. This article provides details on which component checks are performed for each of these requests and tips for investigating failures.
Please note that this article only applies to V4 of the FME Flow REST API, which is officially available in FME 2025.1+. For running Flow health checks using V3 of the REST API, please see this article.
Why Use Health Checks?
A health check request can be used by any person, service, or application that needs to verify that FME Flow is available and operational. Some examples include:
- An FME Flow Administrator, for automated monitoring and notifications.
- A load balancer, to determine where jobs should be routed.
- A webhook service, before sending event data
Liveness
Liveness is when all FME Flow critical components are running and responsive. This can be determined through the following API endpoint:
http://<hostname>/fmeapiv4/healthcheck/liveness
A liveness check verifies that the following components are active and responsive:
| Component | Process | Log File |
| Core | FMEProcessMonitorCore.exe | core > fmeprocessmonitorcore.log |
| Configuration | FMEConfiguration.exe | core > fmeconfiguration.log |
| Resources | FMEMountPoint.exe | core > fmesharedresource.log |
| Connections | FMEConnection.exe | core > fmeconnection.log |
| Scheduler | FMEScheduler.exe | core > fmescheduler.log |
| Notifier | FMENotifier.exe | core > subscribers > fmesubscribers.log |
| Relayer | FMERelayer.exe | core > publishers > fmepublishers.log |
| Cleanup | FMECleanup.exe | service > fmecleanup.log |
| Tomcat | FMEFlow_ApplicationServer.exe | tomcat > catalina.log |
If all listed components are responsive, the liveness check will return the following message:
{"status":"ok","message":"FME Flow is healthy."}
If one or more listed component(s) are not responsive, the liveness check will return the following message:
{"status":"componentUnavailable","message":"FME Flow is not ready to process jobs."}
Readiness
Readiness is when all FME Flow critical components are running and responsive and the system is accepting jobs. A readiness check is performed using the following endpoint:
http://<hostname>/fmeapiv4/healthcheck/readiness
A readiness check verifies that the following components are active and responsive:
| Component | Process | Log File |
| Core | FMEProcessMonitorCore.exe | core > fmeprocessmonitorcore.log |
| Configuration | FMEConfiguration.exe | core > fmeconfiguration.log |
| Resources | FMEMountPoint.exe | core > fmesharedresource.log |
| Connections | FMEConnection.exe | core > fmeconnection.log |
| Scheduler | FMEScheduler.exe | core > fmescheduler.log |
| Notifier | FMENotifier.exe | core > subscribers > fmesubscribers.log |
| Relayer | FMERelayer.exe | core > publishers > fmepublishers.log |
| Cleanup | FMECleanup.exe | service > fmecleanup.log |
| Tomcat | FMEFlow_ApplicationServer.exe | tomcat > catalina.log |
| Queue | memurai.exe or redis-server.exe | queue > localhost_queue.log |
| Post-install scripts have successfully executed | N/A | installation |
If all listed components are responsive and the queue is active, a successful readiness check will return the following message:
{"status":"ok","message":"FME Flow is healthy."}
If one or more listed component(s) are not responsive and/or the queue is not active, a readiness check will return the following message:
{"status":"notReady","message":"One or more essential processes are unavailable."}
How to Investigate a Health Check Failure
Health check requests can return more detailed information by using the includeDetails parameter. This is useful after a general health check fails:
http://<hostname>/fmeapiv4/healthcheck/liveness?includeDetails=true
The response will include a list of all FME Flow components and their respective statuses:
{"status":"ok","message":"FME Flow is healthy.","components":[{"component":"notifier","status":"up"},{"component":"configuration","status":"up"},{"component":"relayer","status":"up"},{"component":"connections","status":"up"},{"component":"scheduler","status":"up"},{"component":"cleanup","status":"up"},{"component":"resources","status":"up"},{"component":"core","status":"up"}]}
Although the Tomcat component is not explicitly listed in the response above, both the liveness and readiness checks will confirm that Tomcat is healthy. Since the Flow API application runs within Tomcat itself, a successful response from either of these endpoints will indicate that the Tomcat component is healthy.
Any components listed as "down" should be further investigated.