FortiGate Next Generation Firewall utilizes purpose-built security processors and threat intelligence security services from FortiGuard labs to deliver top-rated protection and high performance, including encrypted traffic.
Article Id 223725
Description This article describes a troubleshooting guideline when trying to identify issues between FortiGate and EMS.
Scope These guidelines are for FortiGate ZNTA telemetry, tags, and policy enforcement.
Solution ganeshcs_0-1663122092802.png


  • FortiClient to EMS server: Telemetry connections and Compliance verification results.
  • EMS server to Forticlient: Profile push, Real-time monitoring, and Compliance Verification results.
  • FortiClient EMS to FortiGate: Dynamic Endpoint Groups.
  • FortiClient to FortiGate: Telemetry Connection.


1. Connectivity testing Between FortiGate and EMS:


diagnose endpoint fctems test-connectivity <EMS>


Verify FortiGate to FortiClient EMS connectivity.


execute fctems verify <EMS>


Verify the FortiClient EMS’s certificate:


diagnose test application fcnacd 2


Dump the EMS connectivity information.


The diagnose endpoint fctems test-connectivity command shows that the connection between FortiGate and Forticlient EMS is successful. The execute fctems verify command shows that the server certificate is verified with FortiGate and the diagnose test application fcnacd 2 command dumps the FortiClient EMS connectivity information.


If fcnacd does not report the correct status, run real-time fcnacd debugs:


diagnose debug app fcnacd -1

diagnose endpoint filter show-large-data yes <-

diagnose debug enable


Run real-time FortiClient NAC daemon debugs.


EMS communicates to FortiGate on port 8015:


diagnose sniffer packet any 'port 8015' 4 0 l


2. Checking dynamic tagging.


EMS pushes dynamic tag profiles to FortiClient and sends the dynamic endpoint groups to the FortiGate.


On the EMS GUI:


Go to Zero Trust Tags -> Zero Trust Tag Monitor. This will show the FortiClient Endpoint Tag together with the client IP addresses. This dynamic endpoint group should be sent to the FortiGate.


On FortiGate:


To check the users authenticated in FortiGate:


diagnose firewall auth list

To check the endpoint record list:


diagnose endpoint record-list


List EMS ZTNA tags and all dynamic IP and MAC addresses.


diagnose endpoint record list


As of FortiOS 7.4.2, 'diagnose endpoint record list' has been changed to 'diagnose endpoint ec-shm list'.


Show the endpoint record list. Optionally, filter by the endpoint IP address.


diagnose test application fcnacd 7

diagnose test application fcnacd 8


Check the FortiClient NAC daemon ZTNA and route cache.


Additional fcnacd options.


diag test application fcnacd
1. dump debug flag
2. dump EMS info
3. reinit fcems
4. unset report version
5. schedule host_tags call
6. set all notif
7. dump ztna cache
8. dump route cache
9. disable rest api
10. enable rest api
11. force terminate WebSocket connections
12. dump long lived socket clients
13. retry all rest-apis immediately
14. dump ztna cache info
15. dump record connection status
16. dump ZTNA entries with no connection
99. restart



Additional debug commands for SSL-VPN/ZTNA Access proxy:


diag debug application sslvpn -1
diag debug application fnbamd -1

diag debug ena


Run real-time WAD debugs.


diagnose wad debug enable category all

diagnose wad debug enable level verbose

diagnose debug enable


diagnose endpoint wad-comm find-by uid <uid>


 Query endpoints by client UID.


diagnose endpoint wad-comm find-by ip-vdom <ip> <vdom>


Query endpoints by the client IP-VDOM pair.


The WAD daemon handles the proxy.

The FortiClient NAC daemon handles connectivity between FortiGate and EMS.


Related documents: