We provide a proxy for 75+ (cloud)platforms using OData4. This enables Power BI, Power Query and ADF to easily exchange data with all these platforms.
However, when an error occurs, Power BI tries each table in total approximately 10 times, typically all without success. With a report with 10 tables, 100 OData4 requests are executed.
For instance, we have made a OData4 source unavailable such that it raises a permanent error (see picture). On Power BI Desktop with data preview, it first tries a number of times WITH $top=1000 and then more WITHOUT $top=1000.
The request and headers for the rest are all the same:
Some users flood our servers sometimes with thousands of requests and recently one specific user downloaded 184 GB Brotli-compressed data (2,4 TB) on a Saturday-morning, all with the same error due to a crash in ADF.
Is there a known way to convince Power BI that some OData4 errors are persistent and that it should backoff some time?
We have tried varying the HTTP status and the content of the standardized OData4 JSON format, but with no luck.
It would be great when the OData4 producer could say: this is a permanent error, try again tomorrow or try again in a few seconds.
We should not have such a method. As long as Odata doesn't throttle the request from Power BI, Power BI will retry several times to complete operation and I haven't found a statement on how many times retries for each table Power BI will carry when connection fails. I will continue to look for it and sync with you here when there is any update.