Maybe you have a bad client, are you using one of the official ones?
See below using raw protocol commands over basic telnet connection to demonstrate.
------
# telnet localhost 8021
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Content-Type: auth/request
auth ClueCon
Content-Type: command/reply
Reply-Text: +OK accepted
api status
Content-Type: api/response
Content-Length: 371
UP 0 years, 1 day, 3 hours, 39 minutes, 51 seconds, 345 milliseconds, 930 microseconds
FreeSWITCH (Version 20.19.4-dev git 837c62c 2019-04-24 12:16:15Z 64bit) is ready
246 session(s) since startup
14 session(s) - peak 25, last 5min 14
0 session(s) per Sec out of max 30, peak 2, last 5min 0
1000 session(s) max
min idle cpu 0.00/86.43
Current Stack Size/Max 240K/8192K
exit
Content-Type: command/reply
Reply-Text: +OK bye
Content-Type: text/disconnect-notice
Content-Length: 67
Disconnected, goodbye.
Connection closed by foreign host.