The red X in the server list and the actual ability to connect are two different things. The list sends a small status request; joining is a full connection. One can work while the other does not.
What you are seeing
- The list shows a red X or «Can't connect to server», but clicking Join works anyway.
- The player count and MOTD are missing while everything else is fine.
- It resolves for some people and not others, with no pattern by version.
What to do
- Refresh the list, then restart the client
Minecraft caches a failed status for the session. A refresh that still fails after a full client restart is a real signal; one that does not is noise.
- Check the server is not just starting
During startup the port is not accepting yet. The list will show offline for as long as the world is generating.
- Look for a plugin answering the ping
MOTD and server-list plugins intercept the status request. A broken or misconfigured one breaks the list entry specifically, and nothing else.
- Check
enable-statusinserver.propertiesSetting it to
falsedeliberately hides the server from the list while still accepting connections. If someone set it, this is the whole explanation. - Verify the SRV record if you use a domain
The status request follows SRV like a join does, but some launchers and third-party list sites do not. That produces «offline everywhere except in game».
People decide whether to click based on that line. A server that always looks offline loses players who never try to join, and you never hear from them.
The list shows the MOTD, the version and the player count within a second of refreshing.