BUG downloading cloud recordings with access token set results in an invalid response

I am able to download the recording using the base URL in a browser session where the user has already authenticated using the web login on another page. But I’d like to be able to initiate the download from bash.

Hey @JoshSTL,

Can you please email all these details and the download url you are using to developersupport@zoom.us so we can further assist?


Hi dude, did you receive any update, about this? I have the same issue.

Ah I didn’t see Tommy’s update. @cruiz666 , thanks for bumping. I had moved on to other fires. I’ll get an email together when I can get that environment back up. @tommy , hopefully we’re just making a simple omission or something. Are you using the download url generated by the API call ( GET /meetings/{meetingId})?

1 Like

You’re welcome, and no, I’m using the urls that arrive in the recording.completed webhooks. Technically they are the same (I think). I have tried to download it by query string, and by bearer but I get answers similar to the ones you already mentioned:

{“Status”: false, “errorCode”: 401, “errorMessage”: “Forbidden”}
{“status”: false, “errorCode”: 300, “errorMessage”: “Forbidden”}

For the other actions I use an oauth token, but this does not work for the download, I tried to implement the jwt with the same credentials, but I have not been able to make it work …

Hey @cruiz666,

Double check you have allowed Cloud Recordings to be downloaded in your settings:


Hi Tom,
We have been facing issues with downloading cloud meetings, partial downloads, etc since March. Any update on that?


Hey @selva.iyyamperumal,

Please private message me one of your download urls and we will investigate.

We have had no other reports of this issue so it is most likely a bug on how you are downloading the file.


Hi Tom,
I have been reporting since March. I have been sending you all the details including download url, download token, code segment, etc. I have sent the details to developersupport@zoom.us

Thanks for the reply.

Hey @selva.iyyamperumal,

I just replied to you via your ticket to our developer support email.



I’m having the same issue as @cruiz666. Is this solved?
I use the recording.completed webhook content to get the download url. I’ve tried attaching the JWT token via query string. The response I get is:

This issue is very random and happens only for about 1 in 10 meetings (on average). Any help is appreciated.

Hey @amritanshu.amrit,

Can you share the code snippet you are using to download the recording?

Also which recording file type are you trying to download?

The cause of this happening 1 out of 10 times may be due to your JWT Token expiring.


Hi @tommy,

The file types I’m downloading are video, audio and chat file. I’m using php. This is the code:

    $options = array(
		CURLOPT_FILE    => fopen('file_path', 'w'), 
		CURLOPT_TIMEOUT =>  5000, 
		CURLOPT_URL     => $url . '?access_token=' . $this->generateJWT($key,$secret),

		$ch = curl_init();

		curl_setopt_array($ch, $options);

One more thing I noticed is that in these cases, the audio (m4a) file always gets downloaded successfully but one or both of the video (mp4) and chat (txt) files fail to download. This is always the case in about 1 in 10 meetings.

Hey @amritanshu.amrit,

Can you send the meeting ID and download URL that aren’t working for you (as well as a link to this thread) to developersupport@zoom.us? This will help us to take a closer look.


Hi Will. This is my personal account. Should I send the mail from the official account where problems are happening or is this fine?


Please send this email from the account where you’re experiencing the issue, if possible.


I experienced with one file today. Please check

Hey @kalyan,

Please send an email to developersupport@zoom.us with a link to this thread. In that email, please include the following information:

  1. The error that you encountered
  2. The URL that you used to download the cloud recording
  3. The access_token that you used.

I’ll use that information to look into this issue further.