I’ve been running a Rocket.Chat server for about the past six months. It’s always worked fine, but several days ago, I started getting notices that the server is air gapped and would soon enter readonly mode.
This is a snap install running on an AWS virtual server.
The server has connectivity to the Internet. It has a public IP address and there is no firewall or anything preventing it from making outgoing connections.
I can connect to collector.rocket.chat via CURL from the server’s command line.
When I view the rocketchat_statistics collection in Mongo, I can see that it has failed to obtain a token for the past several days, but it was collecting the token up until then.
Nothing changed on the server that would affect connectivity to collector.rocket.chat and as I explained, I can connect to it from the command line.
I see the following log entry each time it attempts to post stats:
{
"level": 50,
"time": "2025-08-10T15:07:20.652Z",
"pid": 20560,
"hostname": "ip-172-26-2-85",
"name": "SyncedCron",
"msg": "Failed to send usage report",
"err": {
"type": "FetchError",
"message": "invalid json response body at https://collector.rocket.chat/ reason: Unexpected end of JSON input",
"stack": "FetchError: invalid json response body at https://collector.rocket.chat/ reason: Unexpected end of JSON input\n at /snap/rocketchat-server/1677/programs/server/npm/node_modules/node-fetch/lib/index.js:273:32\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at sendStats (app/statistics/server/functions/sendUsageReport.ts:25:26)\n at usageReportCron (server/cron/usageReport.ts:19:21)\n at async Promise.all (index 2)\n at startCronJobs (server/startup/cron.ts:15:2)",
"name": "FetchError"
}
}