# Jitsi works with 2 people but not with 3: how to fix it

> Two-person Jitsi calls connect peer to peer and skip the server. From three people, media goes through the videobridge on UDP port 10000. If that port is blocked in a firewall or cloud security group, or the videobridge advertises a private IP, the third person breaks the call. Open 10000/udp everywhere and set JVB_ADVERTISE_IPS to the public IP if the server is behind NAT.

Source: https://jitsi.help/troubleshooting/jitsi-video-not-working-3-participants/
Updated: September 26, 2026
Publisher: Jitsi Help (https://jitsi.help/)

This is the most common Jitsi problem there is, and it has a satisfying explanation.

## Why it happens

- **Two people:** Jitsi connects the two browsers directly (peer to peer). The server only relays signalling. Everything works even if the videobridge is unreachable.
- **Three or more:** the call moves onto Jitsi Videobridge (JVB). Every participant now sends and receives media through the server on **UDP port 10000**.

If that path is broken, the moment the third person joins you see black tiles, frozen video, audio that cuts out, or people bouncing in and out.

## Fix 1: open 10000/udp everywhere

There are usually two firewalls, and both must allow it.

**The server firewall:**

```bash
sudo ufw allow 10000/udp
sudo ufw status
```

**The cloud firewall** (AWS security group, GCP firewall rule, DigitalOcean cloud firewall, Hetzner firewall): add an inbound rule for UDP 10000 from `0.0.0.0/0`. This is the one people miss, because the server firewall looks correct.

Confirm the videobridge is listening on the host:

```bash
sudo ss -ulnp | grep 10000
```

## Fix 2: advertise the public IP

Cloud servers sit behind NAT: the machine sees a private IP like `172.31.x.x`, while users reach a public one. The videobridge must tell clients the **public** address.

It usually discovers it through STUN. When it does not, set it explicitly in `.env`:

```ini
JVB_ADVERTISE_IPS=203.0.113.10
```

Then recreate the videobridge:

```bash
docker compose up -d --force-recreate jvb
```

On AWS, use an Elastic IP so this address never changes.

## Fix 3: check the videobridge is healthy

```bash
docker compose ps
docker compose logs --tail 100 jvb
docker compose logs --tail 100 jicofo
```

Look for the bridge registering with Jicofo. If Jicofo reports no bridge available, the JVB cannot log in to Prosody; check that `JVB_AUTH_PASSWORD` in `.env` has not changed since the first start.

## Fix 4: corporate networks that block UDP

Some office and hotel networks block all outbound UDP. Those users fail even when your server is correct. A TURN server listening on TCP 443 (TLS) lets them relay media over a port that is always allowed.

## Verify

Join from three devices on different networks, for example two laptops and a phone on mobile data. All three should see each other for several minutes.

## Still broken?

We fix this every week. [Send us the details](/contact/?topic=troubleshooting) and we will usually find it within one session, or deploy a correctly configured server with [one click](/jitsi-hosting/).

## Frequently asked questions

### Why does Jitsi work with two people but not three?

With two participants, Jitsi connects the browsers directly to each other (peer to peer), so the server's media path is never used. The third participant switches the call to the videobridge, which needs UDP port 10000 reachable and a correct public IP.

### Which port does the Jitsi videobridge use?

UDP 10000 by default, for all audio and video. It must be open inbound on the server firewall and on any cloud firewall or security group in front of it.

### What is JVB_ADVERTISE_IPS?

A Docker Jitsi setting that tells the videobridge which IP address to give clients. On servers behind NAT, such as cloud instances, set it to the public IP when automatic detection picks the private one.


---

Jitsi Help is an independent service. It is not affiliated with, endorsed by or sponsored by 8x8, Inc. or the Jitsi project. Jitsi and Jitsi Meet are trademarks of 8x8, Inc., used here only to describe the software we host and support.
