Skip to content

Public team lobby can start a player with no assigned team when clan overflows team capacity #3712

@1brucben

Description

@1brucben

Summary
In public team lobbies, a joining player can end up with no usable team assignment when their clan is larger than the remaining capacity on the team chosen for that clan. The current assignment logic keeps the clan on a single team and marks overflow members as "kicked" instead of placing them on another available team or rejecting the join cleanly.

This appears to surface client-side as "no team assigned" or effectively "my player never appears", rather than as an explicit lobby rejection.

Observed behavior
Sometimes when joining a public team lobby, the match starts and the joining player has no team. This seems to happen when:

The game is in team mode.
The joiner has a clan tag.
Their clan is already concentrated on one team.
That team is full, or becomes full while assigning the clan group.
Another team may still have room, but the joiner is not reassigned there.
Expected behavior
One of these should happen instead:

Overflow clan members should spill into another team that still has capacity.
The join should be rejected before start with a clear error explaining that the clan team is full.
At minimum, the player should never be allowed to enter the match in a state where they have no player/team.
Actual behavior
Overflow clan members are assigned "kicked" by the team assignment code, then skipped during game creation. The client then starts without a valid runtime player for that client ID.

Reproduction idea
A likely repro setup:

Create or join a public team lobby, especially duos or trios.
Have multiple players with the same clan tag join.
Fill one clan-preferred team to capacity.
Join with another player from the same clan while another team still has room.
Start the game.
Possible result: the last clan player is missing from team assignment and appears to have no team in-game.

Possible fix directions
Change clan assignment to keep clan members together when possible, but spill overflow members onto other teams instead of marking them "kicked".
If clan splitting is not allowed by design, reject the join explicitly before start with a dedicated error such as "clan team full".
Add coverage for the public-lobby join/start path so this cannot silently regress.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions