File does not exist during request to download_url provided by phone.recording_completed

API Endpoint(s) and/or Zoom API Event(s)

webhooks: phone.recording_completed

Description

Hi, we are developing our zoom app requires user’s zoom phone recording file.
We’ve followed documents of zoom phone and everything work fine except recording downloading.
Currently it’ll always response as

{"code":404,"message":"File does not exist."}

Gone through exist posts related to this error here I know this may because of permission but could you provide more information about the permission setting?

What I’ve confirmed:

  • access token not expired
  • recording could be downloaded in admin console
  • confirm the account setting to allow user access their own recording is checked
  • have right scope in our zoom app

Error?

*   Trying 170.114.52.2:443...
* Connected to zoom.us (170.114.52.2) port 443
* ALPN: curl offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256
* ALPN: server accepted h2
* Server certificate:
*  subject: C=US; ST=California; L=San Jose; O=Zoom Video Communications, Inc.; CN=*.zoom.us
*  start date: Mar 28 00:00:00 2024 GMT
*  expire date: Apr  5 23:59:59 2025 GMT
*  subjectAltName: host "zoom.us" matched cert's "zoom.us"
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
*  SSL certificate verify ok.
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://zoom.us/v2/phone/recording/download/ZZcNugnY...f58yO5wAg
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: zoom.us]
* [HTTP/2] [1] [:path: /v2/phone/recording/download/ZZcNugn...O5wAg]
* [HTTP/2] [1] [user-agent: curl/8.4.0]
* [HTTP/2] [1] [accept: */*]
* [HTTP/2] [1] [authorization: Bearer eyJzdiI6IjAwMDAwMS...fQwCjHIL_chATKVfw]
> GET /v2/phone/recording/download/ZZcNu...yO5wAg HTTP/2
> Host: zoom.us
> User-Agent: curl/8.4.0
> Accept: */*
> Authorization: Bearer eyJzdiI6IjAwMDA...aOr3ifQwCjHIL_chATKVfw
>
< HTTP/2 400
< date: Thu, 15 Aug 2024 05:41:30 GMT
< content-type: application/json
< content-length: 45
< x-zm-trackingid: WEB_0b0a86dd97b42160bcec2a6824388646
< x-zm-region: VA2
< vary: Origin
< vary: Access-Control-Request-Method
< vary: Access-Control-Request-Headers
< x-frame-options: deny
< x-ratelimit-category: Light
< strict-transport-security: max-age=31536000; includeSubDomains
< strict-transport-security: max-age=31536000; includeSubDomains
< cf-cache-status: DYNAMIC
< set-cookie: __cf_bm=WBvp5f_2WyLdPV0f7s9AOEZWmt9209V41R4MLE4uO30-1723700490-1.0.1.1-JZOgYPnMuAScw5TbWwD8xvgRf5XfjdZ2c0Vufvja4cjBT9USvjqXVqgAauSOvffmUmVJgCR0PNVlfDF2hJ24bw; path=/; expires=Thu, 15-Aug-24 06:11:30 GMT; domain=.zoom.us; HttpOnly; Secure; SameSite=None
< report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=50rTjv%2BUkEGs11q2EKYiPXYEG%2FDqXXvec4r%2BnVGNiCeTc7sW0wgPN%2F5g3ZBoIjMit92qctT68g8HlB6jNaJ2dbGtbxKwr7SXyMHExuAvhIaNbVpbNyrslrM%3D"}],"group":"cf-nel","max_age":604800}
< nel: {"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}
< server: cloudflare
< cf-ray: 8b36db1ff807dfdd-NRT
< alt-svc: h3=":443"; ma=86400
<
* Connection #1 to host zoom.us left intact
{"code":404,"message":"File does not exist."}

How To Reproduce

  1. make a phone call
  2. received webhooks as phone.recording_completed
  3. confirm there is download_url
  4. request download_url with Bearer token header as accessToken provided by OAuth
  5. error happens

Hi @oliver661
Thanks for reaching out to us!
This issue is likely related to the permissions you have under your role.
Please ask the admin or account owner to enable your role with phone management View and Edit permissions.

They can do this by going to Admin Tab > User management > Roles > Developer (“your role”)> Role settings > Zoom Phone > Phone Management

Let me know if that works

Hi @elisa.zoom
Thanks for your message!

  • I’ve checked myself (application developer) roles have that.
  • And also moved one of our test account user into a new group which contains this permission.

But same error still keep happening now

< HTTP/2 400
< date: Fri, 16 Aug 2024 09:56:19 GMT
< content-type: application/json
< content-length: 45
< x-zm-trackingid: WEB_f9ba487e488a5f0a96800d4f7bdc54d7
< x-zm-region: VA2
< vary: Origin
< vary: Access-Control-Request-Method
< vary: Access-Control-Request-Headers
< x-frame-options: deny
< x-ratelimit-category: Light
< strict-transport-security: max-age=31536000; includeSubDomains
< strict-transport-security: max-age=31536000; includeSubDomains
< cf-cache-status: DYNAMIC
< set-cookie: __cf_bm=9FR2jdVQxLBLIpBa8_lR0H01j9xguCEDs893vzI9WFQ-1723802179-1.0.1.1-CGJNSjV3oQYjXawOgClvBq9_yQMKMoEm4G3e2FPDge0eYqTDiWwQxDkeO9wAqgBSm0YGaswpq1EBl3Vvyplk8Q; path=/; expires=Fri, 16-Aug-24 10:26:19 GMT; domain=.zoom.us; HttpOnly; Secure; SameSite=None
< report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=U31vDic%2F2h%2F8LDg67CG8wmL%2F663VraA99ezyaQPK5nPHZnrcuHzDs9%2BdVj%2Fk5sKQPj8p2hXlyki%2Bloemn9FvBM4fWeLv%2FKdThL6UhPQyiH%2Fxd%2B4fQWrhgAQ%3D"}],"group":"cf-nel","max_age":604800}
< nel: {"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}
< server: cloudflare
< cf-ray: 8b408dc13937c9ef-NRT
< alt-svc: h3=":443"; ma=86400
<
* Connection #1 to host zoom.us left intact
{"code":404,"message":"File does not exist."}%

Please help to check :pray:

I will send you DM to get more info @oliver661

1 Like