# A player joined with versions of the server's mods that the server refuses

Forge ended a player's join because their game has some of the server's mods in versions whose network protocol does not match the server's.

- Code: `client_mods_mismatch`
- Severity: warning
- Category: Mods
- Server types: Forge
- Page: https://failures.perland.online/failures/client_mods_mismatch/

## Example log

```text
[19:44:10] [Netty Epoll Server IO #2/ERROR] [ne.mi.ne.NetworkRegistry/NETREGISTRY]: Channels [farmersdelight:main,supplementaries:network] rejected their client side version number
```

## Parameters

| Parameter | Meaning |
| --- | --- |
| `channels` | The network channels Forge refused, as it lists them (each `<mod id>:<name>`, separated by commas); the part before the colon is usually the mod's id. |

## Log lines this page covers

- `Channels [<channels>] rejected their client side version number`

## What it means

Mods that add things to the game talk to the player's game over their own network channels, and each channel carries a protocol version. When a player joins a Forge server, the server compares the versions of the player's channels with its own. If a mod's version on the player's side is one the server does not accept, Forge lists those channels at ERROR and ends the join; the player sees a disconnect screen about mismatched mods.

The server itself is fine and keeps running for everyone else. This is not the line `rejected vanilla connections`, which Forge prints when a game without Forge (or a scanner on the internet) connects; the diagnosis does not report that one.

## Why it happens

- **The server's mods were updated and the player's were not,** or the other way round.
- **The player installed the mods by hand** and picked other versions than the server's.
- **The player uses another modpack or an older copy of the server's pack.**

## How to fix

1. Read `channels`: the part before each colon is usually the mod's id, such as `farmersdelight`. Those are the mods whose versions differ.
2. Give the player the exact versions the server runs: the same modpack version, or the same jar files from the server's `mods` folder.
3. If many players hit it after an update, tell them to update the modpack in their launcher before joining.
4. The player's own client-only mods (minimaps, shaders) are not the cause; only mods the server also has are compared.

## In Perland

The issue appears in the server's Diagnosis tab with the channels Forge refused. On a server whose mods come from a modpack, the server's invite page and the player pack link offer players the pack the server runs, to import into their launcher, so their mods match.

## References

- [Forge documentation: SimpleImpl and protocol versions](https://docs.minecraftforge.net/en/1.20.x/networking/simpleimpl/)
