Start on the client
The two most common causes are visible before any server-side digging: the player is on a different Minecraft version than the server, or the address was typed with a typo or trailing space.
Java and Bedrock clients cannot join each other’s servers at all, which accounts for a surprising share of “it will not connect” reports.
Access control
If the server uses a whitelist, an unlisted player is disconnected at login even though everything is running perfectly. A ban or an IP ban produces a similar result with a different message.
Both are checked against the player’s name or address, so a name spelled differently from the account produces a silent rejection.
Reachability
If nobody can connect, suspect the path: a self-hosted server with no port forwarding, a firewall blocking Java, carrier-grade NAT, or a server that is simply not running.
A useful test is separating local from external. If players on the same network can join by private address but nobody outside can, the problem is the network path, not the server.
When the server is at fault
If the server is reachable but drops players after login, the console tells you why: a plugin error, a corrupt chunk where the player logs in, or a crash loop that restarts the server mid-connection.
Read the log around the disconnect rather than the end of the file — the cause is usually a few lines above the symptom.
FAQ
Common questions
Why can I join my server but my friends cannot?
Because you are probably connecting over the local network while they need the public path. Check port forwarding, the machine’s firewall, and whether your ISP puts you behind carrier-grade NAT.
What is the quickest way to rule out a version problem?
Compare the Minecraft version in the player’s launcher installation with the version in your server panel. A mismatch produces an explicit outdated client or server message, so it is usually self-announcing.