Recording unavailable

Hi everyone, I want to ask about my problems when I want to record videos using Jitsi. I have made configuration settings following the documentation, but when I want to record via the server itself, there is an error like the following:

Recording unavailable
Oops! The recording service is currently unavailable. …

If there is a solution then please give directions to me. Thank you, I hope everyone is in good health.

Welcome to the community!
You need to check the logs of Jibri and Jicofo and see whether Jibri is running and connecting OK.

Thanks yasen, I have an error log like this. I hope you can help me

Where is the error? You should upload the complete logs.

Here I attach the error in detail

How did you install, which tutorial did you follow? I see you are using the legacy config file, “config.json” instead of “jibri.conf”.
Could you paste the contents of it? (Or of both, if both are available.) If not, do you have a path for the finalizeRecondings script set up there?
Check also the Jicofo log for errors

I did the installation by following the reference from JitsiHandbook

Here I attach (jibri.conf)

jibri {
   single-use-mode = false
   api {
        http {
           external-api-port = 2222
           internal-api-port = 3333
        }
        xmpp {
            environments = [
                {
                    name = "meet.example.id"
                    xmpp-server-hosts = ["meet.example.id"],
                    #xmpp-server-hosts = ["103.28.52.231"],
                    xmpp-domain = "meet.example.id"
                    control-login {
                        domain = "auth.meet.example.id"
                        username = "-"
                        password = "-"
                        port = 5222
                    }
                    control-muc {
                        domain = "internal.auth.meet.example.id"
                        room-name = "JibriBrewery"
                        nickname = "myjibri"
                    }
                    call-login {
                        domain = "recorder.meet.example.id"
                        username = "-"
                        password = "-"
                    }
                    strip-from-room-domain = "conference."
                    trust-all-xmpp-certs = true
                    usage-timeout = 0
                }
            ]
        }
    }
    recording {
       recordings-directory = "/recordings"
       # TODO: make this an optional param and remove the default
       finalize-script = ""
    }
streaming {
    // A list of regex patterns for allowed RTMP URLs.  The RTMP URL used
    // when starting a stream must match at least one of the patterns in
    // this list.
    rtmp-allow-list = [
      // By default, all services are allowed
      ".*"
    ]
  }
  chrome {
    // The flags which will be passed to chromium when launching
    flags = [
      "--use-fake-ui-for-media-stream",
      "--start-maximized",
      "--kiosk",
      "--enabled",
      "--disable-infobars",
      "--autoplay-policy=no-user-gesture-required"
    ]
  }
  stats {
    enable-stats-d = true
  }
}

Here I attach (config.json)

{
    "recording_directory":"/recordings",
    "finalize_recording_script_path": "",
    "xmpp_environments": [
        {
            "name": "prod environment",
            "xmpp_server_hosts": [
                "meet.example.id"
            ],
            "xmpp_domain": "meet.example.id",
            "control_login": {
                // The domain to use for logging in
                "domain": "auth.meet.example.id",
                // The credentials for logging in
                "username": "-",
                "password": "-"
            },
            "control_muc": {
                "domain": "internal.auth.meet.example.id",
                "room_name": "JibriBrewery",
                "nickname": "jibri"
            },
            "call_login": {
                "domain": "recorder.meet.example.id",
                "username": "-",
                "password": "-"
            },
            "room_jid_domain_string_to_strip_from_start": "conference.",
            "usage_timeout": "0"
        }
    ]
}

Please check my code if there is an error, thank you

Don’t use config.json, it is the old config file.

Also add the path to the finalize recordings script.

Does it mean that I only need to use jibri.conf?

Sorry I’m confused, for the finalize recording script I have to make my own or where to get it from?

Yes

It’s optional. You don’t need one unless you want to add some processing logic to your video file after recording.

I’ve followed everything, it’s also appropriate config by using jibri.conf. But it’s still the same that the recording of the result is unavailable