Forum Discussion

jesus21282's avatar
jesus21282
Frequent Visitor
4 years ago

REST API Cancel Refresh ViaApi - Operation failed - Canceling refresh operation is disabled

Hi folks!- I have a dataset refresh stuck for 4+ hours so far, where it usually takes ~10 mins to refresh.

 

I would like to cancel this refresh, but there is no option in the dataset options to cancel it, so it keeps going without finishing.

 

Scenario:

- Dataset sourced from MySQL multi-server round-robin proxy behind VPN / On-Premises Data Gateway in CLUSTER mode.

- Refreshes trigger via POWER AUTOMATE's Refresh a Power BI dataset action, every 20 mins. (`ViaApi` RefreshType).

 

I tried leveraging the Power BI REST API Cancel dataset refresh method: Datasets - Cancel Refresh - REST API (Power BI Power BI REST APIs) | Microsoft Docs, but it gives me this error:

 

 

 

 

{
    "error": {
        "code": "MethodNotAllowed",
        "message": "Operation failed - Canceling refresh operation is disabled. Dataset ID 7db...xxx Refresh ID 410...xxx RefreshType is ViaApi."
    }
}

 

 

 

 

Any other methods you'd suggest me to try??


So far, I have tried:

- Doing local refresh, and then trying uploading to service, but the Publish won't finish.

- Tried the same, BUT bypassing the MySQL proxy by pointing the PBIX file against a specific MySQL server. Tried already with all servers individually. Still the Publish won't finish.

- Inspecting any stuck queries in the MySQL servers behind the proxy, no queries stuck there either.

 

Last, I am under the impression that this API method is disabled for RefreshType ViaApi, which calls my attention a lot. I think they should absolutely enable it!

Let me know your thoughts, thanks

 

EDIT:
Sorry, I meant we used Cancel Refresh in Group action instead. Datasets - Cancel Refresh In Group - REST API (Power BI Power BI REST APIs) | Microsoft Docs.

 

Also, I managed to finally fix the issue, by stopping the Flow calls to refresh the dataset. This means, I turned off the Power Automate flow triggering the dataset refresh temporarily, and then,I was now able to upload my dataset from local again, effectively overriding the version online. Finally, I turned on my flow again and it's all running well back again.

3 Replies

  • Is this dataset in your My Workspace or a shared workspace. If in a shared workspace, you need to use the Cancel a Dataset in a Group.

    Other possible ways to kill are to kill the session/thread  on your backend, or restart/take offline the gateway its going through. 

    • jesus21282's avatar
      jesus21282
      Frequent Visitor

      Good point. The dataset is in a shared workspace, and I used Cancel Refresh in Group instead ( I will edit this in my first message ), but it failed with the error shown.

       

      I also managed to finally fix the issue, by stopping the Flow calls to refresh the dataset. This means, I turned off the Power Automate flow triggering the dataset refresh temporarily, and then,I was now able to upload my dataset from local again, effectively overriding the version online. Finally, I turned on my flow again and it's all running well back again.

       

      I further dig into your comment, and:

      - I am not sure how to tell session/thread in my backend;

      - Restarting the gateway is not easy for us, because we use a Gateway cluster of 5 On-Premises data gateways, and we don't know which one server in particular is taking this load. Any thoughts on this?

  • we are facing exact same issue (used "cancel in group api") to cancel our enhanced dataset refresh which is taking more than 6 hours now. Were you able to figure out the issue on API errors? m-colbert jesus21282