Gotchas - Office 365 REST Reporting Web Service, empty results, time-out issues and more

Sharing my gotchas working with Office 365 Reporting Web Service (including MessagingTrace) related ones. Few of the known issues were, 

- We make GET request, but face time-out issues. Say,$format=Json&$filter=StartDate%20eq%20datetime%272018-05-11T23:49:34%27%20and%20EndDate%20eq%20datetime%272018-05-12T01:50:22%27
- Get Empty Report result values
Le Café Central de DeVa - Deva Blogs
- Data’s are not appearing instantly
- Time-out issues

Adding few Gotchas that I learnt/observed while working with Reporting Web Service or designing apps using them or while accessing the data:

- As you aware Office 365 Reporting web service is an integrated service, receiving data from a wide variety of sources and datacenters. If there is planned/unplanned downtime, then Reporting Web Services is unavailable.
- If your application makes a lot of requests, or your dashboard website uses a single service account to gather all the reporting data, you might encounter throttling of your requests – so you need to be aware of it.
- To be able to see the reports, you need the right permissions in Office 365. If you aren't already able to see them, ask your org's administrator to add you to one of the administrator roles.
- Most types of information about mail processing, message tracing, and so on are available to the reports within a couple of hours. However, none of the data will appear "instantly."; so expect delay or retry it later after sometime.
- Reports can take more than a couple of seconds depending on the amount of detail data. Till the time, you may end-up getting empty report result values for the request success.
- Your application should time how long the reports take to retrieve, provide status and make sure that you set user expectations accordingly.
- Exchange Server/Office 365 has network-bandwidth protection in the form of response "throttling" that can sometimes affect the Reporting web service. But you’re unlikely to be affected by that unless you’re requesting a lot of detailed reports very quickly.
- Most errors that we see during development come from malformed requests, bad column names, and so on.
- Ensure that the service is available before you make the report request.
- When you receive them(JSON Format), read them carefully, as they often tell you exactly where the problem is.
- You might also receive retry-able data mart timeout errors.

Please consider looking at the detailed documentation/recommendations @

Hope this helps!!