Hi,
I have a very simple flow. However i kept encounter error 429. I set the recurrence as every 15min. However sometimes it does succeed. Any help on this?
Flow
Error
Sometime it succeed
We only implemented a subset of the API calls - the ones we need most often.
And this would be the one you would want to use
Here's the swagger code for all of them
/v1.0/myorg/datasets/{datasetId}/executeQueries:
post:
responses:
default:
description: default
schema: {}
summary: Query Dataset
description: Use DAX query to retrieve data from the specified dataset
x-ms-visibility: important
operationId: Query_Dataset
parameters:
- name: datasetId
in: path
required: true
type: string
- name: body
in: body
required: false
schema:
type: object
properties:
queries:
type: array
items:
type: object
properties:
query:
type: string
description: query
description: queries
serializerSettings:
type: object
properties:
includeNulls:
type: boolean
description: includeNulls
description: serializerSettings
/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/refreshes:
get:
responses:
default:
description: default
schema:
type: object
properties:
value:
type: array
items:
type: object
properties:
refreshType:
type: string
description: refreshType
startTime:
type: string
description: startTime
endTime:
type: string
description: endTime
serviceExceptionJson:
type: object
properties:
errorCode:
type: string
description: errorCode
description: serviceExceptionJson
status:
type: string
description: status
requestId:
type: string
description: requestId
description: value
summary: Get Dataset Refresh History in Group
operationId: Get_Dataset_Refresh_History_In_Group
x-ms-visibility: important
parameters:
- name: groupId
in: path
required: true
type: string
- name: datasetId
in: path
required: true
type: string
- name: $top
in: query
required: false
type: integer
post:
responses:
default:
description: default
schema: {}
headers:
RequestId:
description: RequestId
type: string
summary: Refresh Dataset in Group
operationId: Refresh_Dataset_in_Group
x-ms-visibility: important
parameters:
- name: groupId
in: path
required: true
type: string
- name: datasetId
in: path
required: true
type: string
- name: body
in: body
required: false
schema:
type: object
properties:
type:
type: string
description: type
title: Type
default: automatic
x-ms-visibility: important
enum:
- full
- clearValues
- calculate
- dataOnly
- automatic
- defragment
commitMode:
type: string
description: commitMode
title: Commit Mode
default: transactional
x-ms-visibility: important
enum:
- transactional
- partialBatch
maxParallelism:
type: integer
format: int32
description: maxParallelism
title: Max Parallelism
default: 10
x-ms-visibility: important
retryCount:
type: integer
format: int32
description: retryCount
title: Retry Count
x-ms-visibility: important
default: 0
objects:
type: array
items:
type: object
properties:
partition:
type: string
description: partition
title: Partition Name
x-ms-visibility: important
table:
type: string
description: table
title: Table Name
x-ms-visibility: important
description: objects
required:
- type
x-ms-visibility: important
x-ms-visibility: important
/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/refreshes/{refreshId}:
get:
responses:
default:
description: default
schema:
type: object
properties:
startTime:
type: string
description: startTime
endTime:
type: string
description: endTime
type:
type: string
description: type
commitMode:
type: string
description: commitMode
status:
type: string
description: status
extendedStatus:
type: string
description: extendedStatus
currentRefreshType:
type: string
description: currentRefreshType
numberOfAttempts:
type: integer
format: int32
description: numberOfAttempts
messages:
type: array
items:
type: object
properties:
message:
type: string
description: message
type:
type: string
description: type
description: messages
summary: Get Refresh Execution Details in Group
description: Gets Dataset Refresh Details in Group
operationId: Get_Refresh_Execution_Details_in_Group
x-ms-visibility: important
parameters:
- name: groupId
in: path
required: true
type: string
- name: datasetId
in: path
required: true
type: string
- name: refreshId
in: path
required: true
type: string
/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/refreshes/{RequestId}:
delete:
responses:
default:
description: default
schema: {}
summary: Cancel Refresh in Group
description: Cancels an in-progress refresh based on the Request ID
operationId: Cancel_Refresh_In_Group
parameters:
- name: groupId
in: path
required: true
type: string
- name: datasetId
in: path
required: true
type: string
- name: RequestId
in: path
required: true
type: string
Instructions on how to do that are here Create a custom connector from an OpenAPI definition | Microsoft Learn
And you'll likely find other versions of this on the interwebs.
Thanks. I'd love to see detailed instructions as this does not appear to be an out-of-the-box power automate solution.
thanks again!
Run an API call with Top 1 filter and check if the End Date is present and/or the status is different from "Unknown"
Datasets - Get Refresh History In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn
The easiest way to do that is to create your own custom connector for the API calls you are interested in. I can post the swagger if interested.
?In Power Automate, how does one first check the current refresh status?
Any request that comes in while a refresh is in progress is one too many. You need to pivot your approach and first check the current refresh status before attempting to submit a new request.
hi, So meaning every 15 min still consider too many request?
429 means too many requests. Reduce your request frequency.