User details API returned no emailin response and

Hi!

Description
Recently we had the following problem: the /users/{userId} API endpoint returned a response without the email field. It is required for this type of request though. This happened two times (8/27 and 8/30) already.

Also, the first/last name had an empty value and created_at had a value, that is not related to the requested user.

User id is “3rll8dGTRtesJCVwD8zvSA”

Full response:

{created_at: '2021-08-30T11:05:49Z', dept: 'Analyst', first_name: '', group_ids: [], id: '3rll8dGTRtesJCVwD8zvSA', im_group_ids: [], last_name: '', role_name: '', type: 1, verified: 0}

I checked that API returns a correct response now for the same user.

How it could be possible? Should we expect such kind of response later in ours code?

UPD: the issue happened again with a different user id today (8/31)

Error
missing required email field

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

Which Endpoint/s?
/users/{userId}

How To Reproduce (If applicable)
I cannot reproduce it right now

Hi @sergey.fursov

Thank you for reaching out to Developer Support, happy to help here!

I am sorry to hear that this happened to you, this is an unexpected behavior of the API, you should be able to see the first and last name when you retrieve an user.

Have you experience this behavior any other times? is this happening still??
Thanks,
Elisa

Hi @elisa.zoom

Yea, we had the same problem several times yesterday, and we had to add a workaround to our code to stop failing on such responses (we just treat them like 404 responses). Maybe we had such a problem today, I just don’t know about that now.

If you want, I can add a new logging logic to collect such cases during the week. Would it be helpful?

Thanks,
Sergey

Hi @sergey.fursov

I am happy to hear that you guys found a workaround for your issue.
And yes, that would be super helpful!

I will keep an eye on this issue

Regards,
Elisa

Ok, I’ll add additional logging.
Did you find a reason why the issue happened recently? How I can help you with that?

Hey @sergey.fursov,

Without being able to reproduce the issue, it’s difficult to say why this was happening. I’m not seeing any outages lining up with this. Please let us know if you log any further instances of this.

Thanks,
Max

hey @MaxM

we just (Sep 16, 2021 9:01:17 AM UTC) got the same empty response for the user instance

zoom_user_id: imKtAjixQRW5KZ1TsipWhA
zoom_api_response: {created_at: 2021-09-16T09:01:17Z, dept: Mobile, first_name: , group_ids: [], id: imKtAjixQRW5KZ1TsipWhA, im_group_ids: [], last_name: , role_name: , type: 1, verified: 0}

Hey @sergey.fursov,

Thank you for following up here. It looks like that response has been modified from what the API returns. Would you be able to provide the full response? You can do that by sending an email to developersupport@zoom.us with a link to this thread and the response.

Thanks,
Max

Hey @MaxM

Actually, what I posted above is a full response body for the /users/imKtAjixQRW5KZ1TsipWhA API request. The status for the response is 200. What kind of additional info do you want me to provide? request/response headers? anything else?

Thanks,
Sergey

Hey @sergey.fursov,

What I mean is that typically the response would be formatted as JSON, with quotes, and there would be more properties that are returned. Here’s an example from our documentation:

When logging that request, what REST client were you using? Is it possible that the data is changed or filtered before logging?

Thanks,
Max

Hey @MaxM

Sorry for the confusion, the response was copied from Sentry, which formats data in its web interface.
The raw response looks like the following:

{
"created_at":"2021-09-17T09:11:46Z",
"dept":"Mobile",
"first_name":"",
"group_ids":[],
"id":"imKtAjixQRW5KZ1TsipWhA",
"im_group_ids":[],
"last_name":"",
"role_name":"",
"type":1,
"verified":0
}

We access the Zoom API by using python’s requests lib, our code looks like:

import requests
response = requests.get(
    f'https://api.zoom.us/v2/users/{userId}', 
    headers = {'Authorization': f'Bearer {access_token}'},
)
response.raise_for_status()
return response.json()

the code above doesn’t raise any error (which means the response has 200 code) and returns the json I’ve posted above

Hey @sergey.fursov,

Thank you for following up on this. Please send an email to developersupport@zoom.us with a link to this thread. In that email, please provide the App Name and App Owner Email. I’ll use that to reproduce the issue.

Thanks,
Max

Hey @MaxM,

Just did that. I should clearly note that the issue might not be reproducible with the same UserId provided above, because after some time the issue is being resolved itself and API returns correct result with the full info about the user.

Thanks,
Sergey