Forum Discussion
An error occurred while processing the data in the semantic model.
- 1 year ago
I think you are right that the most likely issue is the API itself. Even if the developer is skeptical, it’s common for publicly accessible APIs to intermittently:
- Throttle requests (rate limiting).
- Fail due to timeout or heavy load.
- Return malformed or incomplete responses.
The fact that re-entering the same credentials "resolves" the issue supports this; your manual refresh is essentially retrying the call, which eventually succeeds.
Anonymous APIs often lack SLA guarantees or proper headers, and Power BI doesn’t retry Web.Contents fetches automatically.
The other likely situation is a service timeout. If the API call is complex (e.g., has dynamic parameters, headers, or paging logic), Web.Contents may not fully fold or may exceed timeout thresholds.
If you are ingesting straight into a semantic model, I would encourage you to set up your ETL through dataflows and then ingest those flows into the semantic model. At a minimum this will isolate the refresh failures to the query and not make the whole model refresh fail.
You could also try to wrap Web.Contents with a try...otherwise
let Source = try Web.Contents("https://your.api.url/endpoint") otherwise null in Source
Please mark this post as a solution if it helps you. Appreciate Kudos.
I think you are right that the most likely issue is the API itself. Even if the developer is skeptical, it’s common for publicly accessible APIs to intermittently:
- Throttle requests (rate limiting).
- Fail due to timeout or heavy load.
- Return malformed or incomplete responses.
The fact that re-entering the same credentials "resolves" the issue supports this; your manual refresh is essentially retrying the call, which eventually succeeds.
Anonymous APIs often lack SLA guarantees or proper headers, and Power BI doesn’t retry Web.Contents fetches automatically.
The other likely situation is a service timeout. If the API call is complex (e.g., has dynamic parameters, headers, or paging logic), Web.Contents may not fully fold or may exceed timeout thresholds.
If you are ingesting straight into a semantic model, I would encourage you to set up your ETL through dataflows and then ingest those flows into the semantic model. At a minimum this will isolate the refresh failures to the query and not make the whole model refresh fail.
You could also try to wrap Web.Contents with a try...otherwise
let
Source = try Web.Contents("https://your.api.url/endpoint") otherwise null
in
Source
Please mark this post as a solution if it helps you. Appreciate Kudos.