Delete Meeting Recordings API Hook sometimes fails silently

Using this template helps us debug your issues more effectively :slight_smile:

Description
I’ve got a small app we’re not publishing, it’s just for us to use and it goes through our older recordings, downloads them locally and then deletes the backed up recording from the cloud.

This was working pretty great except that we’ve suddenly run into an issue where recordings are refusing to delete.

The API is responding to the deletion request with a 204 code which the API says means the call worked and the meeting recording should be deleted but I can go into the Zoom admin panel and see that the recording is still there and when I subsequently use the API to get recordings the recording is returned in the results.

So the API claims the recordings have been deleted, returns no errors, but the recordings have not been deleted.

Error
The API returns a success code not an error code.

Which App Type (OAuth / Chatbot / JWT / Webhook)?
OAuth

Which Endpoint/s?

Hi @GigaOm,

Can you double check that you’re passing the delete action as a query parameter (and not, for example, as part of a request body)?

Perhaps you can share the request URL you’re using (minus the meeting ID)?

Thanks,
Will

Hey Will, I actually wasn’t even including the action param if that’s what you’re talking about. As it indicates in the docs that there is a default value of “trash” which is fine by me as something being sent to the trash is cool as it still removes it from our storage count but also gives us a chance to recover for a bit if for some reason we didn’t actually want to delete something that gets deleted.

The request to do a delete action is indicated by passing DELETE as the request method instead of the usual PUT/GET methods when making the request. This is all according to spec as indicated in the docs.

And I will mention again, this was working. I’ve got 926 items in the trash right now. Most of them put there by this same script. I can try adding the explicit action attribute to the request though. I’ll try that out now and get right back to you.

And yep, can verify that including the attribute makes no difference.

Example URL:

https://api.zoom.us/v2/meetings/meetingId/recordings?action=trash

Happy to pass the actual HTTP response if you’d like but would rather do that in a more private manner.

I think I might have discovered a bug…

So when I look at the trash, I actually see the meeting I deleted in there. But it’s in there like a 100 times probably from all of my confused testing trying to figure out why it wouldn’t delete. But it’s also still in the non deleted listing. In fact all of the recordings that were failing to delete are showing in both places somehow.

I’m guessing that shouldn’t be possible.

Hi @GigaOm,

Thanks for sharing these additional details.

Can you please share the following with us at developersupport@zoom.us so that we can take a closer look?

  • Email associated with your account
  • Screenshot of what you’re seeing in the UI
  • Your full API request

Thanks,
Will

Alright, I spent more time on this and I’m feeling like an idiot partly because I didn’t understand that the meeting-id doesn’t always change. I think the endpoint I really want is this one:

Where I’m deleting a specific recording instead of all of them for a given meeting. Though it’s still notable that clearly the meeting one doesn’t delete ALL of the recordings associated with it by default it looks like maybe it just deletes the most recent one?

So basically what was happening was I called the endpoint it deleted the most recent recording with that meeting-id and then returned success. But the older recording with the same meeting-id was still there.

So no I’m having trouble with this single recording endpoint though, it’s unclear what it expects as the recording ID since there is no value in the recording object the API sends that corresponds directly to that in a naming sense. I figured the uuid was probably what it was looking for (and that’s what I see in the URL when looking at a specific recording in the Zoom admin panel, but it seems like that doesn’t work either as I get a 3301 “This recording does not exist” error when I try that.

The uuid is a hash of some kind with special characters in it so I made sure its urlencoded it but that doesn’t seem to make any difference.

I’ve been like 1 step away from having this worked out for a week now. :slight_smile: Appreciate any help you can throw my way.

Hi @GigaOm,

I can see you’ve also written in via email, so we will continue the conversation with you there directly.

Thanks,
Will