We're being billed for duplicate recordings that do not exist

We’ve been using VideoSDK since November.
We record all meetings. We record in only one quality. We do automatic transcriptions as well.
We used to have the same amount of transcription minutes as recording minutes, as both are tied to the call duration, not the number of participants, and both are started automatically.

We have not done significant code changes to how the recording takes place other than the npm library updates.

Starting April 13th, we started to be billed for duplicated recordings.

As in, we find them in the billing report, they have the same id, same name, same start time, same duration, but a different end time (?!).

This appears to be random and it’s affecting roughly 50% of the meetings. Some meetings exhibit this issue, some meetings don’t.

We’ve tried to contact support about it on multiple channels and all we’re getting is our tickets closed saying “this issue is configuration-related” and “go ahead and purchase support”.

Has anybody else been experiencing this?

I’m not sure what the issue could be; have you actually downloaded and played back some of these duplicate recordings? Could it be a situation that there are recordings of guest ISO and recordings of composite guests?

The duplicate recordings do not exist in any other place other than the billing reports.

I’ve searched for the recordings, there is a single recording in the dashboard for every duplicate entry and there is a single media file in each recording.

We don’t use ISO whatever, we don’t even have it enabled, I’ve read somewhere that it needs to be enabled by “contacting support”, anyway.

We don’t send any cloud_recording_option in the JWT, but the default is documented as being 0 which is “cloud recording file with user videos combined into one”.

There is one recording file per each recording entry, named “Shared screen with speaker view”, as expected, and it contains the following tracks:

General
Format                                   : MPEG-4
Format profile                           : Base Media / Version 2
Codec ID                                 : mp42 (isom/mp42)
File size                                : 609 MiB
Duration                                 : 1 h 31 min
Overall bit rate mode                    : Variable
Overall bit rate                         : 935 kb/s
Frame rate                               : 25.000 FPS
Encoded date                             : 2025-04-24 08:00:56 UTC
Tagged date                              : 2025-04-24 08:00:56 UTC

Video
ID                                       : 2
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L5
Format settings                          : CABAC / 11 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 11 frames
Format settings, Slice count             : 4 slices per frame
Muxing mode                              : Container profile=High@L3.1
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 1 h 31 min
Bit rate                                 : 807 kb/s
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 25.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.035
Stream size                              : 525 MiB (86%)
Title                                    : H.264/AVC video
Writing library                          : AVC Coding
Encoded date                             : 2025-04-24 08:00:56 UTC
Tagged date                              : 2025-04-24 08:00:56 UTC
Color range                              : Limited
Color primaries                          : BT.601 PAL
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.470 System B/G
Codec configuration box                  : avcC

Audio
ID                                       : 1
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : mp4a-40-2
Duration                                 : 1 h 31 min
Bit rate mode                            : Variable
Bit rate                                 : 126 kb/s
Maximum bit rate                         : 150 kb/s
Channel(s)                               : 1 channel
Channel layout                           : M
Sampling rate                            : 32.0 kHz
Frame rate                               : 31.250 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 82.2 MiB (14%)
Title                                    : AAC audio
Encoded date                             : 2025-04-24 08:00:56 UTC
Tagged date                              : 2025-04-24 08:00:56 UTC
Menus                                    : 3

Menu
ID                                       : 3
Format                                   : Timed Text
Codec ID                                 : text
Duration                                 : 1 h 31 min
Title                                    : Text
Encoded date                             : 2025-04-24 08:00:56 UTC
Tagged date                              : 2025-04-24 08:00:56 UTC
Menu For                                 : 1
00:00:00.000                             : Recording Started

Basically nothing has changed except the fact that we are billed 50% more for recordings, and the reason for it seems to be those duplicated entries in the detailed report.

I cannot upload images here, don’t know why, but I’ve sent an abundance of them on the tickets.
Still, Zoom continues to say it’s a “configuration issue” and if I want support, I should pay for it.

Sometimes the dashboards don’t always have everything the API’s do, and vice-versa. You might try seeing what’s returned by accessing the Meeting Recording API endpoint for each meeting in question, particularly if the returned recording_files array has more than one entry, then utilizing each entry’s download_url to get the file(s) and investigate further.

We are using the webhook to receive the recording ended notifications and transfer them out of Zoom. I’ve searched for duplicates in the files and in the logs, we do not receive duplicates of those recordings over the webhook.

Nope, nothing special in the API either, one video file and couple of metadata:

"recording_files": [
        {
            "id": "601fbced-e10c-4253-8d3c-6672b9025a00",
            "status": "completed",
            "recording_start": "2025-04-24T08:00:56Z",
            "recording_end": "2025-04-24T09:31:57Z",
            "file_type": "MP4",
            "file_size": 638275351,
            "download_url": "REMOVED",
            "recording_type": "shared_screen_with_speaker_view(CC)",
            "file_extension": "MP4"
        },
        {
            "id": "69519abd-20cf-450f-a3e7-3a94667b19e0",
            "status": "completed",
            "recording_start": "2025-04-24T08:00:56Z",
            "recording_end": "2025-04-24T09:31:57Z",
            "file_type": "TIMELINE",
            "file_size": 3398871,
            "download_url": "REMOVED",
            "recording_type": "timeline",
            "file_extension": "JSON"
        },
        {
            "id": "d9ea2639-0994-4380-b98c-f8e08e0d198a",
            "status": "completed",
            "recording_start": "2025-04-24T08:00:56Z",
            "recording_end": "2025-04-24T09:31:57Z",
            "file_type": "TRANSCRIPT",
            "file_size": 126704,
            "download_url": "REMOVED",
            "recording_type": "audio_transcript",
            "file_extension": "VTT"
        },
        {
            "id": "58051f22-7fd9-43a8-a82f-f19b0d10c412",
            "status": "completed",
            "recording_start": "2025-04-24T08:00:56Z",
            "recording_end": "2025-04-24T09:31:57Z",
            "file_type": "CC",
            "file_size": 86491,
            "download_url": "REMOVED",
            "recording_type": "closed_caption",
            "file_extension": "VTT"
        },
        {
            "id": "920f42e9-2df4-4d26-94ba-1e1e5edd0e41",
            "status": "completed",
            "recording_start": "2025-04-24T08:00:56Z",
            "recording_end": "2025-04-24T09:31:57Z",
            "file_type": "CHAT",
            "file_size": 44,
            "download_url": "REMOVED",
            "recording_type": "chat_file",
            "file_extension": "TXT"
        }
    ]

If I download the MP4 file, I unsurprisingly get the exact file we’re getting from the webhook.

Same goes for the billing, apparently, because why whouldn’t we bill people more than we’re owned and then close all their tickets when they complain, right?.. Great business ethic.

Hey @sorin.upgrade
Sorry to hear you are dealing with this.
Have you been able to get a resolution? I am happy to take a closer look at this!

@alexm thanks for helping troubleshooting!

Hi,

No resolution as of yet, but after being bounced around 2 times in the chat and having 2 other tickets closed telling me to buy “development support”, I apparently still have one ticket open which has been silent for a week. Which, if I am to be optimistic, I would hope it means somebody actually started to look into it and has realised that it’s indeed a bug.

If you’d like to take a closer look, the ticket is TS1793628, let me know if you need any more info from my side. I tried to attach proof here, but alas, I’m not allowed.

Thanks,
Sorin.

Thanks @sorin.upgrade i will take a closer look. I see that the team just sent you a note to confirm they are still looking into this.. I will keep an eye on it to make sure you get the help you need

1 Like