Skip to content
Jitsi.help

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

Updated Tested on Jitsi Meet stable-11031By the Jitsi Help engineering team

Short answer

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.

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:

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:

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:

JVB_ADVERTISE_IPS=203.0.113.10

Then recreate the videobridge:

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

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 and we will usually find it within one session, or deploy a correctly configured server with one click.

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.

Stuck, or would rather not do this by hand?

Deploy it in one click

A private Jitsi server in your own AWS account with SSL, your domain and optional recording, transcription and JWT. Free 15 minute trial.

Start free trial

Talk to a Jitsi engineer

Setup, fixes, branding, recording, scaling. Tell us what is happening and we reply with a plan and a quote.

Get expert help

Related