Cannot find recording in Minio

We are developing a video application using the Livekit Next.js client app with the OpenVidu infrastructure.
The application works fine both on a local computer setup and on cloud server deployment, however we cannot find the recording files in the Minio server.
Starting and stopping the recording of a meeting does not produce any errors at all, but there are no files added to the specified bucket in Minio after the recording is stopped.
Any ideas on what we should look for are welcome!

Hello @apochr

  1. What version did you installed? Single Node, Elastic or HA? 3.1.0 ?

  2. What is the output of docker ps on each node?

  3. How is the SDK request of the recording?

  4. Don’t you have any kind of error in the egress docker container?

  5. Are any recording present in /opt/openvidu/data/egress_data/home/egress/backup_storage ?

  6. Restart the deployment and Increase the debug level of the egress container in the egress config file at /opt/openvidu/config:

    Add this:

    logging:
        level: debug
    

    And modify the S3 part of the configuration adding this:

    storage:
        s3:
            ... other config...
            aws_log_level: LogDebugWithRequestRetries
    

Best Regards.

Thank you for the reply, Carlos.

I’m running Openvidu Pro Elastic 3.0.0 with 1 Master node and 1 Media node.

docker ps on Master:

CONTAINER ID   IMAGE                                     COMMAND                   CREATED          STATUS          PORTS     NAMES
8441eb7cd7a3   grafana/grafana:11.3.0                    "/bin/sh -c '\n  . /c…"   26 minutes ago   Up 26 minutes             grafana
1a84dda21b1e   grafana/promtail:3.2.1                    "/bin/sh -c '\n  . /c…"   26 minutes ago   Up 26 minutes             promtail
6734663014c3   redis:7.4.1-alpine                        "/bin/sh -c '\n  . /c…"   26 minutes ago   Up 26 minutes             redis
54c40f85963a   grafana/loki:3.2.1                        "/bin/sh -c '\n  . /c…"   26 minutes ago   Up 26 minutes             loki
665fd2d815b8   openvidu/openvidu-operator:3.0.0          "/bin/operator"           26 minutes ago   Up 26 minutes             operator
1eb9b6dcc506   mongo:7.0.15                              "/bin/sh -c '\n  . /c…"   26 minutes ago   Up 26 minutes             mongo
67d8a742f85d   openvidu/openvidu-pro-caddy:3.0.0         "/bin/caddy run --co…"    26 minutes ago   Up 26 minutes             caddy
45c4aa19c288   openvidu/openvidu-pro-dashboard:3.0.0     "./openvidu-dashboard"    26 minutes ago   Up 3 seconds              dashboard
1fd918ee08f5   bitnami/minio:2024.10.13-debian-12-r1     "/bin/sh -c '\n  . /c…"   26 minutes ago   Up 26 minutes             minio
8cdc31fc0ade   bitnami/grafana-mimir:2.14.1              "/bin/sh -c '\n  . /c…"   26 minutes ago   Up 26 minutes             mimir
5e915581245e   openvidu/openvidu-v2compatibility:3.0.0   "/bin/entrypoint.sh"      26 minutes ago   Up 26 minutes             openvidu-v2compatibility

docker ps on media:

CONTAINER ID   IMAGE                                COMMAND                   CREATED          STATUS          PORTS     NAMES
73a34c1cbc4c   prom/prometheus:v2.55.0              "/bin/sh -c '\n  . /c…"   32 minutes ago   Up 32 minutes             prometheus
3ea33e249179   livekit/egress:v1.8.4                "/entrypoint.sh"          32 minutes ago   Up 32 minutes             egress
8567d8abd18b   grafana/promtail:3.2.1               "/bin/sh -c '\n  . /c…"   32 minutes ago   Up 32 minutes             promtail
8bdeb4de73f4   openvidu/openvidu-server-pro:3.0.0   "/livekit-server --c…"    32 minutes ago   Up 32 minutes             openvidu
34c430c58077   livekit/ingress:v1.4.2               "ingress"                 32 minutes ago   Up 32 minutes             ingress
137697ac5b53   openvidu/openvidu-operator:3.0.0     "/bin/operator"           32 minutes ago   Up 32 minutes             operator

This is the start recording code:
https://cloud.medion7.net/s/AKR9ciSxC6PWTMJ
And this is the stop recording code:
https://cloud.medion7.net/s/BsdYBsb84mX3qsr

I enabled logging for egress, and these are the errors I get on the egress container log:

2025/04/11 11:01:58 DEBUG: Retrying Request s3/PutObject, attempt 3
2025/04/11 11:01:58 DEBUG: Request s3/PutObject Details:
---[ REQUEST POST-SIGN ]-----------------------------
PUT /2025-04-11T11%3A01%3A38.346Z-427.mp4.json HTTP/1.1
Host: openvidu.openvidu-master.medion7.com:9100
User-Agent: aws-sdk-go/1.51.28 (go1.22.1; linux; amd64) S3Manager
Content-Length: 110
Authorization: AWS4-HMAC-SHA256 Credential=minioadmin/20250411/us-east-1/s3/aws4_request, SignedHeaders=content-disposition;content-length;content-md5;content-type;host;x-amz-content-sha256;x-amz-date, Signature=cb3c12c288d54610dc95024c5ef0454f04559970ab78b5627b66e36b34fb0c7b
Content-Disposition: inline
Content-Md5: paiD+1oeDWYTl1Ztk5wV0A==
Content-Type: application/json
X-Amz-Content-Sha256: 46d112289be19cfbba67a9e40193291ef43ea4a33fd1252c51eae45e01267723
X-Amz-Date: 20250411T110158Z
Accept-Encoding: gzip

Looks like the requests are failing after 3 retries, although the host and port are correct.

The recording files are there in the backup_storage folder, every time we start and stop, a new one is created.

Any suggestion would be appreciated.

Ok, I now understand the situation.

Firstly, consider that when you execute egress with an S3 endpoint, the egress is responsible for making the request to that endpoint. If the endpoint is not accessible by the egress container, the request will fail.

Based on your logs, you are using openvidu.openvidu-master.medion7.com:9100 as the endpoint. You have two options to resolve this issue:

  • Option 1: Open port 9100 on your Master Node to be publicly available. I do not recommend this since it is generally unnecessary.

  • Option 2: Configure the S3_ENDPOINT in your NextJS app to http://localhost:9100. Each Media Node can access MinIO at localhost 9100, which is proxied to the Master Node.

Try one of these options and let me know how it goes. :blush:

1 Like