Enable two types of recordings (Raw-tracks and cloud) at the same time for a room

A month ago, we reach out to Daily support to understand the possibility of enabling two types of recordings at the same time for a room. They provided with a workaround solution, which is to start each type of recordings with a unique instance ID. However, when I tried their proposed solution. I encounter error while trying to stop the recording. It has been 2+ weeks since I report the issue and the feature is still not working. So, I am reaching out to the community to see if anyone has encountered similar problem.

The Daily support has already updated the max_streaming_instances_per_room for our domain.

Here are the flows for our implementation.

Start recording

  1. User presses a button on frontend to start recording.
  2. Frontend app sends a request to the backend to start recording in the room.
  3. Backend receives the request, it makes two separate HTTP requests to Daily to start recording. Each request has different recording type parameter and unique instance id.
  4. Once the backend receives the successful response from Daily, we create some internal states about meeting recording has started in our database.
  5. Backend returns successful response to the frontend, so the frontend can change the UI accordingly.

Stop recording

  1. User presses a button on frontend to stop recording.
  2. Frontend app sends a request to the backend to stop the recording for the room.
  3. Backend receives the request, it makes two separate HTTP requests to Daily to stop the recordings. With each request, the instance id with the respected type matches with the values that we used to start the recordings.
  4. If backend receives successful responses from Daily, it would clear the internal state and return successful response to the frontend.
  5. ** However, the problem we are encountering is that the HTTP request to Daily to stop recording would fail. Hence, it cannot stop the meeting recording properly. **

We chose the approach to use backend to communicate with Daily using HTTP request is because it enables us to simplify the state management of the application and makes it easier to recover from error states.

Here is an example of request logs we made in our application.

To eliminate problems in our implementation, I tried directly use Postman to make the start and stop recording request to a room. The the stop request would fail as well. It is like the instance ID was never attached to the recording.

We have been waiting for Daily support to help us to resolve the issue for a while. But still nothing yet. If anyone has encounter a similar problem, I'd really appreciate your help. Thank you in advance.

Comments