403 - Forbidden response when trying to download transcription

Background:
We have a azure function that act as endpoint for incoming event (transcription_completed) from Zoom. From there, we are going to download the transcription using the download_url and download_token.

Issue
Every time the Azure Function tries to download the transcriptions its response is always Forbidden. This was working before (few weeks ago I guess). Additionally, when I tried to paste the URL (https://<download_url>?access_token=<access_token>) on the browser it downloads the file even on the postman it’s properly working. It also working when I tried to run the Azure Function locally.

I already tried to parse the download_token to the download_url (https://<download_url>?access_token=<access_token>) which is before, I’m passing the token in the header “Bearer <download_token>”

Any idea on how to solve this issue?

1 Like

@randell.cordial,

Thank you for posting, and sorry to hear about this behavior you are seeing when using Azure Function. Can you share if you are seeing any errors being logged? It seems strange that you can download the recordings using Postman but encounter an issue with the Azure Function.

Hi, I don’t see any error logs in Azure Function.
The response is only 403 Forbidden. You can check also this app insight logs:

I’m not sure if this helps.

Thank you!

Hi Randell,
I think we’re having the same issue as you with 403 responses and error code 1020 (see thread: Error Code 1020). This appears to be a CloudFlare block on production server IPs, which explains why these requests work when you run them from a different IP (such as your DEV machine).

@donte.zoom Are you able to check if this is a CloudFlare issue. This is an urgent production issue for us for more than 12 hours.

Hi,

I think I’m having same issue.

we using web meeting sdk on Azure App Service(Docker) to create webinar session.

today, suddenly getting 403 error response.

no additional error message, just 403 error.

But postman, localhost works fine with same code, same api key.

it’s urgent production issue for us, too.

Let me correct my reply.

We calling Rest API with jwt from backend to create webinar session, not Web meeting SDK.
(ex: https://api.zoom.us/v2/users/{email}/webinars)

(Edited)
with further investigation, I think it related with some docker & cloudflare issue.

inside docker, Rest API rejected with 403 from cloudflare
(because error response contains “cloudflare”, like this
“StatusCode”: 403,
“ReasonPhrase”: “Forbidden”,
“Headers”: [
{
“Key”: “Date”,
“Value”: [
“Mon, 07 Nov 2022 02:21:50 GMT”
]
},
{
“Key”: “Connection”,
“Value”: [
“keep-alive”
]
},
{
“Key”: “X-Frame-Options”,
“Value”: [
“SAMEORIGIN”
]
},
{
“Key”: “Referrer-Policy”,
“Value”: [
“same-origin”
]
},
{
“Key”: “Cache-Control”,
“Value”: [
“no-store, must-revalidate, no-cache, max-age=0, private, post-check=0, pre-check=0”
]
},
{
“Key”: “Set-Cookie”,
“Value”: [
“__cf_bm=j9MNMXRwdxiXhOsTmuUae0Uy4XulhBf.J0nqvkQBloA-1667787710-0-ATZQmgimZc1rWNclDEk2bC3+2Bow5uBgBQqrZrnjj4csPT9zcfrKUSDczCBKyfhkYf1G2IODN9qhXhC3ZP14Yak=; path=/; expires=Mon, 07-Nov-22 02:51:50 GMT; domain=.zoom.us; HttpOnly; Secure”
]
},
{
“Key”: “Report-To”,
“Value”: [
“{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=ZukTYE%2F5XcDeTj7nUP5U1m6zCadLKVLY%2BRyLSqsR3lWlAlfuDbjKMk%2FjQ8US9tobcQcxIBu69t50tSUBEmBRoCJbApOA8VrDVuKAVU6X37F6vrMQ%2BsGmMXYEcoh9"}],"group":"cf-nel","max_age":604800}”
]
},
{
“Key”: “NEL”,
“Value”: [
“{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}”
]
},
{
“Key”: “Server”,
“Value”: [
“cloudflare”
]
},
{
“Key”: “CF-RAY”,
“Value”: [
“766299089f4700cf-ICN”
]
},
{
“Key”: “Alt-Svc”,
“Value”: [
“h3=":443"; ma=86400, h3-29=":443"; ma=86400”
]
}
],)

Hi all, I’ve tried to test this again, it seems it is working now. I’m able to download the transcription using the Azure Function. Not sure what Zoom did.

Awesome @randell.cordial ! Glad to here the behavior as resolved. Should you have additional questions, please let us know.

One possible solution for this issue is to check the Azure Function’s access permissions and ensure that it has the necessary permissions to access the download URL and token. You can also try using a different authentication method such as passing the token as a query parameter instead of in the header. Additionally, you can check if there are any changes in the download URL or token that might have caused the issue and update your Azure Function accordingly. Lastly, you may consider reaching out to Zoom support for assistance in case the issue is on their end.

This topic was automatically closed 368 days after the last reply. New replies are no longer allowed.