Ambiguous ErrorQuotaExceeded message when using Microsoft Graph REST APIs - microsoft-graph-api

My current team has developed an application that interfaces with Microsoft Graph APIs in order to interact with Outlook emails from our enterprise portal.
Ultimately the REST API's has returned an unexpected amount of errors to multiple users, mentioning "ErrorQuotaExceeded" as the error code.
That's an extremely ambiguous message since none of the involved users has space quota issues. Also, this error only appears when calling some specific REST endpoints.
For instance, the following request always works, returning a payload with HTTP 200 response status, as expected:
GET https://graph.microsoft.com/v1.0/me/mailFolders/Inbox/messages
However, if we try to synchronize the user emails adding /delta to the aforementioned GET request (as mentioned by the official docs), we get the following error, with HTTP 403 status code:
GET https://graph.microsoft.com/v1.0/me/mailFolders/Inbox/messages/delta
{
"error": {
"code": "ErrorQuotaExceeded",
"message": "Mailbox has exceeded maximum mailbox size.",
"innerError": {
"request-id": "13c686c6-5d4d-4a9b-8594-3b34482d6805",
"date": "2018-11-13T08:09:12"
}
}
}
It should be noted that I have 3.27GB occupied out of 50GB, so it wouldn't make any sense to me that the ErrorQuotaExceeded error gets triggered.
The official Microsoft Graph Support page explicitly recommends asking this kind of questions to StackOverflow, since they don't seem to offer an official support to their API. Thanks in advance for your help.

Related

Planner tasks endpoint always returns a 403?

I'm attempting to get tasks assigned to a specific user from the Graph API, so based off of the sample query in the graph explorer i'm using this endpoint
https://graph.microsoft.com/v1.0/users/<user-email>/planner/tasks
Which works fine for whatever user I'm signed in as, but attempting to get tasks for a user I'm not signed in as will always return with a 403 and say I don't have the required permissions. Group.ReadWrite.All is granted by admin, and according to the graph docs, that should be fine, but no luck.
I've also just created a new demo tenant and one by one granted permissions in the graph explorer with admin and still no luck! So i'm doubting the issue really is permissions. And for the record I've tried v1.0 and beta endpoints, and I've attempted this in a SPFx Web Part, and it doesn't work in practice either.
Not sure that it will help, but this is what is being returned each time:
{
"error": {
"code": "",
"message": "You do not have the required permissions to access this item.",
"innerError": {
"request-id": "b02e3529-a4ae-4825-b4e6-7fc9b1fa228e",
"date": "2019-03-27T12:28:41"
}
}
}
Anyone else ran into this issue or know of a workaround?
Reading tasks for other people is not allowed. We are investigating app-only request support, which should enable this scenario.

Could not obtain WAC Access Token

I am trying to create a worksheet using the Graph API and getting the below error. Everything on the URL seems right and I am unable to figure out what is causing the error. There is little help on the Graph API documentation also!
URL:
https://graph.microsoft.com/v1.0/me/drive/items/01FUAEYJMWQZF5VGFFL5G27P5AGS5M2FXD/workbook/worksheets
Error:
{
"error": {
"code": "AccessDenied",
"message": "Could not obtain a WAC access token.",
"innerError": {
"request-id": "44990b81-a8ee-489f-9fd8-d5f7c9a31bf1",
"date": "2018-05-07T14:02:08"
}
}
}
Microsoft documentation:
https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/worksheetcollection_add
Any pointers to the solution or what I might be doing wrong is appreciated. Thanks.
According to this post, "WAC is basically a designation for the Office web apps".
So this error probably means that something is tripping up the Graph server (in the file access authentication logic?), but the reported error is not specific enough, hence the generic "WAC Access Token" error.
This worked for me:
Make sure the file is in Sharepoint, not OneDrive (Microsoft Graph doesn't seem to play well with Excel files stored in OneDrive - I think I saw this on Reddit)
Is the file extension .xlsx? (According to this answer, .xltm can cause this error)
Does your user have the Files.Read permission?
Make sure you're using Delegated User permissions from and not Application permissions (GitHub issue)

Is the Spotify search API no longer available without authentication?

For years I've been using Spotify's search API for various projects. It has always been available to use without authentication.
Example:
https://api.spotify.com/v1/search?q=kanye%20west&type=track
Now starting just today it is responding with the following
{
"error": {
"status": 401,
"message": "No token provided"
}
}
I can't find anything stating that they've changed their search API, but the docs now say authentication is required.
It has previously stated that requests without an auth token would be rate limited. Now it says a token is required. Does anyone know if they've updated their API, or if this is a permanent thing? I find it hard to believe they would make such a drastic change to their API without notice.
They did update their API. Bummer.
https://developer.spotify.com/news-stories/2017/01/27/removing-unauthenticated-calls-to-the-web-api/
You can find details on how to migrate your unauthorized calls here:
https://developer.spotify.com/migration-guide-for-unauthenticated-web-api-calls/

Getting usage limit error from server

On Friday (6/24/2016) our youtube app crashed giving us the following error.
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
}
The code that was run was a simple API request to check the state of a video. It has also been running without any problems for over a year.
curl https://www.googleapis.com/youtube/v3/videos?part=contentDetails,status,snippet&key=XXX&id=XXX&maxResults=50
A few thoughts:
This message makes no sense since we are passing our key as a parameter which does authenticate us. I understand this can mean I need to use OAuth but this would be a change since this has been running without errors for over a year.
When I checked our API console I found that the youtube api was marked as disabled (this changed as we enabled it to get a key last year) and I do not see any usage limit errors when I check usage in the console.
I have also found making the request to the API from a browser on my desktop works but using curl on our server gives the usage error. This indicates there is some issue with our server.
Can someone help me understand what's going on? Are there IP blocks for the API? Did Google make a change recently that would have reset my console and caused an error suddenly in our code?
Any thoughts would be greatly appreciated.
"Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
I've come across this error before. It's not that complicated. 2 things I can suggest:
You're access token has expired. You need to generate a new one. Read Implementing OAuth 2.0 Authorization.
Register a new API key in you're GDC.
Also, try oAuth Playground for testing.

Google Drive API Download Error 403 Daily Limit -- Ruby

I'm having this daily limit problem with my ruby code when I try to issue a download request. This is a test program so I am running it in my terminal. I just call the ruby file.
I've followed this guide to quickly get into the Google Drive API.My code is pretty similar to that guide other than my scopes which are:
SCOPE = ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.appfolder", "https://www.googleapis.com/auth/drive.metadata"]
The credentials I am using is oAuth Service Key with "other" selected.
This is the line of code making the call.
content = HTTP.get('https://www.googleapis.com/drive/v3/files/' + file_id + "?alt=media").body
This is the error I am getting from the HTTP call.
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
}
I've followed this link and created all the necessary credentials to get it working, but still have had no success. Google Drive API is also enabled in my project.
How can you fix this error even after you've set up the Google API project and its credentials?
Edit: Wanted to note that I have search and upload working with the same code. Download is the only one that is giving me errors.
All the suggestions given here are not up to the mark . This is a routine error that Drive API throws and can be easily handled .As soon as you get the error , you can again request the Drive API to consider your request by using a strategy called exponential back-off . This ensures that you make a call to Drive API again , after a specified amount of time . There is a documentation about this issue by Google and is a common issue when you send too many requests at a time .Check this link right here, it is the answer to all your problems that you are facing https://developers.google.com/drive/v3/web/handle-errors#errors_and_suggested_actions . And also request an additional Quota from Google Developers Console . Additional quota can be requested under the Quotas tab in Google Developers Console. You might be lacking enough quota to make the request . The details for same are given in the link i posted above. You should create an account and request Quota as being an unauthenticated user your requests won't last long.Use Google OAuth to authenticate yourself into the Drive API.

Resources