Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi Team,
I have a query regarding the dataset refresh process in Power BI using the Enhanced API. Specifically, I want to understand whether the dataset refresh behaves like a transaction or if the tables refresh independently.
I am using the Enhanced API to refresh multiple tables in a dataset.
API End Point:
https://api.powerbi.com/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/refreshes
Below is the JSON request body I’m using:
{"type": "Full","objects": [{"table": "table1"},{"table": "table2"},{"table": "table3"}]}
If the refresh of one table (e.g., "table2") fails, what happens to the refresh status of the other tables ("table1" and "table3") in the dataset?
• Does the failure of "table2" trigger a rollback for all tables, causing the entire refresh operation to fail?
• Or does "table1" refresh successfully and "table3" refresh is skipped due to the error in "table2" : showcasing sequential property
• Or do the remaining tables ("table1" and "table3") refresh successfully, even if "table2" encounters an error?
Essentially, I’m trying to determine if the dataset refresh is transaction-bound (all or nothing) or if each table refreshes independently within the same dataset refresh operation.
Looking forward to your insights!
Thank you!
Solved! Go to Solution.
Semantic model refreshes (down to the partition) are based on blitting. Only after a successful completion will the entity (partition or table or model) be swapped in.
When you request a refresh of a single table the mashup engine may have to also refresh dependency tables - that mostly depends on the lineage and the design of your calculated columns. You can see the dependencies when you run the selective refresh in SSMS, for example.
So the answer is a definitive yes 🙂 Both...
Thanks for the reply from lbendlin , please allow me to provide another insight:
Hi, @ahwanmishra
Based on my understanding:
In Power BI, when using the enhanced API for dataset refresh, the refresh behaviour depends on the commitMode parameter set in your request. If you do not specify commitMode, by default, the refresh operation is transactional. This means the refresh operation is treated as a transaction, and if any table fails to refresh, the entire refresh operation will roll back, causing all table refreshes to fail.
However, if you set commitMode to partialBatch, the refresh will be independent. This means each table will refresh separately. If one table (e.g., "table2") fails to refresh, other tables (e.g., "table1" and "table3") will continue to refresh.
Below are the relevant documentation screenshots:
For more details, please refer to:
Enhanced refresh with the Power BI REST API - Power BI | Microsoft Learn
Datasets - Refresh Dataset - REST API (Power BI Power BI REST APIs) | Microsoft Learn
Of course, if you have any new discoveries or questions, please feel free to get in touch with us.
Best Regards,
Leroy Lu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly
Thanks for the reply from lbendlin , please allow me to provide another insight:
Hi, @ahwanmishra
Based on my understanding:
In Power BI, when using the enhanced API for dataset refresh, the refresh behaviour depends on the commitMode parameter set in your request. If you do not specify commitMode, by default, the refresh operation is transactional. This means the refresh operation is treated as a transaction, and if any table fails to refresh, the entire refresh operation will roll back, causing all table refreshes to fail.
However, if you set commitMode to partialBatch, the refresh will be independent. This means each table will refresh separately. If one table (e.g., "table2") fails to refresh, other tables (e.g., "table1" and "table3") will continue to refresh.
Below are the relevant documentation screenshots:
For more details, please refer to:
Enhanced refresh with the Power BI REST API - Power BI | Microsoft Learn
Datasets - Refresh Dataset - REST API (Power BI Power BI REST APIs) | Microsoft Learn
Of course, if you have any new discoveries or questions, please feel free to get in touch with us.
Best Regards,
Leroy Lu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly
Semantic model refreshes (down to the partition) are based on blitting. Only after a successful completion will the entity (partition or table or model) be swapped in.
When you request a refresh of a single table the mashup engine may have to also refresh dependency tables - that mostly depends on the lineage and the design of your calculated columns. You can see the dependencies when you run the selective refresh in SSMS, for example.
So the answer is a definitive yes 🙂 Both...
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
6 | |
6 | |
3 | |
2 | |
2 |
User | Count |
---|---|
6 | |
5 | |
4 | |
4 | |
3 |