# Jitsi recording not working: Jibri errors and fixes

> Most Jibri failures have one of four causes: Chrome cannot load the meeting page (untrusted certificate or unreachable URL), the snd-aloop kernel module is missing (always on AWS's linux-aws kernel), the recorder's XMPP domain or passwords do not match the Jitsi server, or every Jibri is already busy. Check docker compose logs jibri for the exact message and match it below.

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

Start with the logs. Jibri is chatty and usually says exactly what went wrong:

```bash
docker compose -f docker-compose.yml -f jibri.yml logs --tail 200 jibri
```

Then match what you see.

## "Timed out waiting for call page to load"

Jibri opens the meeting in headless Chrome. This error means the page never finished loading.

**Cause A: an untrusted certificate.** On a server reached by IP, the stack serves a self-signed certificate. A human can click through the warning; Jibri cannot. We saw every recording fail this way on IP-only test servers. Fix it with a real domain and certificate, or for IP-only servers set this in `.env` and recreate Jibri:

```ini
IGNORE_CERTIFICATE_ERRORS=1
```

**Cause B: the recorder cannot reach the public URL.** A dedicated recorder must resolve and reach `PUBLIC_URL` on 443. Test from the recorder: `curl -I https://meet.example.com`.

## Recording starts, then stops, or has no audio

Jibri captures audio from the ALSA loopback device.

```bash
lsmod | grep snd_aloop || echo "snd-aloop not loaded"
sudo modprobe -n snd-aloop && echo available || echo missing
```

**On AWS**, Ubuntu's `linux-aws` kernel does not include `snd-aloop` at all. Install `linux-generic`, make it the GRUB default and reboot once. Steps are in [Jitsi on AWS](/guides/jitsi-on-aws/).

With several Jibri instances, give the module enough devices and substreams:

```bash
echo "options snd-aloop enable=1,1,1 index=0,1,2 pcm_substreams=8" | sudo tee /etc/modprobe.d/jibri-aloop.conf
```

## The Record button does nothing, or "Recording unavailable"

**No idle Jibri.** One Jibri records one meeting. If another meeting is recording, the next request has nobody to take it. Scale up the number of Jibri instances.

**The recorder cannot log in.** In the Jibri logs, look for authentication errors. These values must be identical on the Jitsi server and every recorder:

- `XMPP_RECORDER_DOMAIN`
- `JIBRI_RECORDER_PASSWORD`
- `JIBRI_XMPP_PASSWORD`

We pin `XMPP_RECORDER_DOMAIN` explicitly on both sides. Relying on each side's default is how a mismatch sneaks in after an upgrade.

**A dedicated recorder cannot reach Prosody.** It needs 5222/tcp on the Jitsi server. Allow it only from the recorder (on AWS, from the recorder's security group) and confirm the Prosody container publishes the port. A recorder that retries "Error connecting" forever is almost always this.

## Recordings never reach S3

If you upload with a finalize script and a timer:

- The finalize script must be executable and at the path in `JIBRI_FINALIZE_RECORDING_SCRIPT_PATH`.
- The host must have credentials: on AWS an instance profile with `s3:PutObject` on the bucket.
- Check the uploader's own logs with `journalctl -u recording-upload`.

## The server struggles while recording

Each recording keeps about two CPU cores busy with Chrome and ffmpeg. On a small shared server, meetings get choppy during recording. Move Jibri to its own server (a c5.large per concurrent recording is a good start on AWS).

## Want it working today?

[Send us your Jibri logs](/contact/?topic=jitsi-recording-setup) and we will fix it, or see our [recording setup service](/services/jitsi-recording-setup/). On our one-click platform, recording is a tested $39 add-on that handles all of the above.

## Frequently asked questions

### What does 'Timed out waiting for call page to load' mean?

Jibri's headless Chrome could not open the meeting page. The usual cause is a self-signed certificate on an IP-only server, which Chrome refuses. Use a real certificate, or set IGNORE_CERTIFICATE_ERRORS=1 for Jibri. Also check the recorder can reach the server's public URL.

### Why is my Jitsi recording silent?

Jibri records audio from the ALSA loopback device created by the snd-aloop kernel module. If the module is missing, or has too few substreams for the number of Jibri instances, recordings fail or have no sound.

### Why does the Record button do nothing?

Either no Jibri is registered and idle, or the recorder cannot log in to Prosody. Check that XMPP_RECORDER_DOMAIN, JIBRI_RECORDER_PASSWORD and JIBRI_XMPP_PASSWORD are identical on the Jitsi server and the recorder.


---

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.
