Logic App is deployed twice, even tough the bicep file only has the logic app once.
- Dominant language
- ABAP
- Stars
- 424
- Forks
- 320
- Avg merge
- 14h 41m
- Merged PRs (30d)
- 1
Description
### Severity
P2 - High (Major functionality broken)
### Describe the Bug with repro steps
I was deploying my template using az cli and I noticed that the Logic App was deployed twice - And the last one deployed was faulty
I deployed using the command:
`az deployment group create --resource-group --template-file "01.2.Helper.SendNotification.bicep" --name 01.2.Helper.SendNotification-20260121-HHMMSS --mode Incremental --parameters parameters.test.json`
After deployment which was successful I noticed that it was not working properly - And upon examining, the workflow was missing actions.
Here are the deployment versions of the WorkFlow:
The two deployed Logic Apps at 9:57 AM was part of the deployment started at 09:56:52 AM listed in the deployment list:
Here are the details from the deployment:
And looking at the actual layout of the two versions - First the one that was correct (08584326210650479843)
And the faulty one (08584326210126937598):
As you can see the faulty one are missing elements within the scopes - And some elements are directly missing.
At 10:34 AM I did a new deployment, and this time it worked.
### What type of Logic App Is this happening in?
Consumption (Portal)
### Are you experiencing a regression?
_No response_
### Which operating system are you using?
Windows
### Did you refer to the TSG before filing this issue? https://aka.ms/lauxtsg
Yes
### Workflow JSON
```json
# This is the BICEP file that was deployed
param environment string = 'test'
param projectSuffix string
param workflowNames object
param logicAppState string = 'Disabled'
#disable-next-line no-unused-params
param systemReferences object
#disable-next-line no-unused-params
param dataverse object
#disable-next-line no-unused-params
param businessCentral object
#disable-next-line no-unused-params
param storageAccount object
#disable-next-line no-unused-params
param externalSystem object
#disable-next-line no-unused-params
param secretValues object
@description('The name of the email service, defined in 00.3.AzureCommunicationsServices.bicep')
var emailServices_name = 'ces-${environment}-${projectSuffix}'
// Reference the existing domain resource
resource azureManagedDomain_existing 'Microsoft.Communication/emailServices/domains@2023-06-01-preview' existing = {
name: '${emailServices_name}/AzureManagedDomain'
scope: resourceGroup()
}
// Construct the email address dynamically
@description('The email address used for sending notifications')
var doNotReplyEmailAddress = 'DoNotReply@${azureManagedDomain_existing.properties.mailFromSenderDomain}'
@description('The prefix used for naming the Logic Apps')
var prefix = 'la-${environment}-${projectSuffix}'
@description('The name of the Logic App for sending notifications')
var nameOfLogicApp = '${prefix}-${workflowNames.helperSendNotification}'
@description('The connections used by the Logic App')
var connections object = {
acsemail: {
id: '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Web/locations/${resourceGroup().location}/managedApis/acsemail'
connectionId: resourceId('Microsoft.Web/connections', 'acsemail')
}
}
resource logicApp 'Microsoft.Logic/workflows@2019-05-01' = {
name: nameOfLogicApp
location: resourceGroup().location
properties: {
state: logicAppState
definition: {
'$schema': 'https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#'
contentVersion: '1.0.0.0'
parameters: {
errorRecipients: {
defaultValue: [
'myemail@example.com'
]
type: 'Array'
}
senderEmailAddress: {
defaultValue: doNotReplyEmailAddress
type: 'String'
}
'$connections': {
defaultValue: {}
type: 'Object'
}
}
triggers: {
Send_Notification: {
type: 'Request'
kind: 'Http'
inputs: {
schema: {
type: 'object'
properties: {
FlowDetails: {
type: 'object'
description: 'workflow() from current flow.'
}
ErrorObject: {
type: 'object'
description: 'Full error object received from the error handler.'
}
NotificationBody: {
type: 'string'
description: 'Full HTML body of the notification to be sent via Email, leave blank if not needed.'
}
MessageService: {
type: 'string'
enum: [
'Email'
'Teams'
'Notification'
]
description: 'What service to use to send notifications (Email or Teams)'
}
}
}
}
}
}
actions: {
Try: {
actions: {
'Select_-_Error_Recipients': {
type: 'Select'
inputs: {
from: '@parameters(\'errorRecipients\')'
select: {
address: '@item()'
}
}
}
'Switch_-_MessageService': {
runAfter: {
'Select_-_Error_Recipients': [
'Succeeded'
]
}
cases: {
'Case_-_Notification': {
case: 'NOTIFICATION'
actions: {
'Send_email_-_Notification': {
type: 'ApiConnection'
inputs: {
host: {
connection: {
name: '@parameters(\'$connections\')[\'acsemail\'][\'connectionId\']'
}
}
method: 'post'
body: {
senderAddress: '@{parameters(\'senderEmailAddress\')}'
recipients: {
to: '@body(\'Select_-_Error_Recipients\')'
}
content: {
subject: 'Error notification'
html: '
@{triggerBody()?[\'NotificationBody\']}
'}
importance: 'Normal'
}
path: '/emails:sendGAVersion'
queries: {
'api-version': '2023-03-31'
}
retryPolicy: {
type: 'none'
}
}
}
}
}
'Case_-_Email': {
case: 'EMAIL'
actions: {
Send_email: {
runAfter: {
'Compose_-_HTML_Body': [
'Succeeded'
]
}
type: 'ApiConnection'
inputs: {
host: {
connection: {
name: '@parameters(\'$connections\')[\'acsemail\'][\'connectionId\']'
}
}
method: 'post'
body: {
senderAddress: '@{parameters(\'senderEmailAddress\')}'
recipients: {
to: '@body(\'Select_-_Error_Recipients\')'
}
content: {
subject: 'Error notification'
html: '@{outputs(\'Compose_-_HTML_Body\')}'
}
importance: 'Normal'
}
path: '/emails:sendGAVersion'
queries: {
'api-version': '2023-03-31'
}
retryPolicy: {
type: 'none'
}
}
}
'Parse_JSON_-_Workflow_Details': {
type: 'ParseJson'
inputs: {
content: '@coalesce(\r\n triggerBody()?[\'FlowDetails\'],\r\n workflow()\r\n)'
schema: {
type: 'object'
properties: {
id: {
type: 'string'
}
name: {
type: 'string'
}
type: {
type: 'string'
}
location: {
type: 'string'
}
tags: {
type: 'object'
properties: {}
}
run: {
type: 'object'
properties: {
id: {
type: 'string'
}
name: {
type: 'string'
}
type: {
type: 'string'
}
}
}
}
}
}
}
Parse_JSON_Error_Data: {
runAfter: {
'Parse_JSON_-_Workflow_Details': [
'Succeeded'
]
Condition: [
'Succeeded'
]
}
type: 'ParseJson'
inputs: {
content: {
workflowName: '@{body(\'Parse_JSON_-_Workflow_Details\')?[\'name\']}'
resourceGroup: '@{split(coalesce(body(\'Parse_JSON_-_Workflow_Details\')?[\'id\'], \'\'), \'/\')?[4]}'
resourceGroup2: '@{split(coalesce(body(\'Parse_JSON_-_Error_Details\')?[\'Contents\']?[\'inputs\']?[\'host\']?[\'connection\']?[\'name\'], \'\'), \'/\')?[4]}'
resourceGroups: [
'@{split(coalesce(body(\'Parse_JSON_-_Workflow_Details\')?[\'id\'], \'\'), \'/\')?[4]}'
'@{split(coalesce(body(\'Parse_JSON_-_Error_Details\')?[\'Contents\']?[\'inputs\']?[\'host\']?[\'connection\']?[\'name\'], \'\'), \'/\')?[4]}'
]
location: '@{body(\'Parse_JSON_-_Workflow_Details\')?[\'location\']}'
subscriptionId: '@{split(coalesce(body(\'Parse_JSON_-_Workflow_Details\')?[\'id\'], \'\'), \'/\')?[2]}'
workflowStatus: '@{body(\'Parse_JSON_-_Error_Details\')?[\'Status\']}'
failedAction: '@{body(\'Parse_JSON_-_Error_Details\')?[\'ActionName\']}'
runId: '@{body(\'Parse_JSON_-_Workflow_Details\')?[\'run\']?[\'name\']}'
trackingId: '@{body(\'Parse_JSON_-_Error_Details\')?[\'Contents\']?[\'trackingId\']}'
clientTrackingId: '@{body(\'Parse_JSON_-_Error_Details\')?[\'Contents\']?[\'clientTrackingId\']}'
startTime: '@{body(\'Parse_JSON_-_Error_Details\')?[\'Contents\']?[\'startTime\']}'
endTime: '@{body(\'Parse_JSON_-_Error_Details\')?[\'Contents\']?[\'endTime\']}'
errorCode: '@{body(\'Parse_JSON_-_Error_Details\')?[\'Contents\']?[\'code\']} / @{body(\'Parse_JSON_-_Error_Details\')?[\'Contents\']?[\'error\']?[\'code\']}'
errorMessage: '@{coalesce(body(\'Parse_JSON_-_Error_Details\')?[\'ErrorMessage\'],body(\'Parse_JSON_-_Error_Details\')?[\'Contents\']?[\'error\']?[\'message\'])}'
runUrl: '@{concat(\n \'https://portal.azure.com/#view/Microsoft_Azure_EMA/DesignerEditorConsumption.ReactView/id/\',\n encodeUriComponent(body(\'Parse_JSON_-_Workflow_Details\')?[\'id\']),\n \'/location/\',\n body(\'Parse_JSON_-_Workflow_Details\')?[\'location\'],\n \'/isReadOnly~/true/isMonitoringView~/true/runId/\',\n encodeUriComponent(body(\'Parse_JSON_-_Workflow_Details\')?[\'run\'][\'id\'])\n)}'
rawErrorDetails: '@{body(\'Parse_JSON_-_Error_Details\')?[\'Contents\']}'
}
schema: {
type: 'object'
properties: {
workflowName: {}
resourceGroup: {}
resourceGroup2: {}
resourceGroups: {}
location: {}
subscriptionId: {}
workflowStatus: {}
failedAction: {}
runId: {}
trackingId: {}
clientTrackingId: {}
startTime: {}
endTime: {}
errorCode: {}
errorMessage: {}
runUrl: {}
rawErrorDetails: {}
}
}
}
}
'Compose_-_HTML_Body': {
runAfter: {
Parse_JSON_Error_Data: [
'Succeeded'
'Failed'
]
}
type: 'Compose'
inputs: '\n\t\n\t\t\n\t\t\t\n\t\t\n\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
🚨 Azure Logic App Error Report
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t❌ Error Summary
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tWorkflow:\n\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'workflowName\']}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tFailed Action:\n\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'failedAction\']}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tStatus:\n\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'workflowStatus\']}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t🔧 Error Details
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tComponentDetails\n\t\t\t\t\t\t\t\t\t\tError Message\n\t\t\t\t\t\t\t\t\t@{replace(\r\n body(\'Parse_JSON_Error_Data\')?[\'errorMessage\'],\r\n \'\r\n\',\r\n \'\'\r\n)}\n\t\t\t\t\t\t\t
🔍 Workflow Details
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tPropertyValue\n\t\t\t\t\t\t\t\t\t\tWorkflow Name\n\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'workflowName\']}\n\t\t\t\t\t\t\t\t\t\tResource Group\n\t\t\t\t\t\t\t\t\t@{join(\r\n coalesce(\r\n body(\'Parse_JSON_Error_Data\')?[\'resourceGroups\'],\r\n createArray(\'\',\'\')\r\n ),\r\n \'/\'\r\n)}\n\t\t\t\t\t\t\t\t\t\tLocation\n\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'location\']}\n\t\t\t\t\t\t\t\t\t\tSubscription ID\n\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'subscriptionId\']}\n\t\t\t\t\t\t\t⚠️ Execution Details
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tPropertyValue\n\t\t\t\t\t\t\t\t\t\tStatus\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'workflowStatus\']}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tFailed Action\n\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'failedAction\']}\n\t\t\t\t\t\t\t\t\t\tRun ID\n\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'runId\']}\n\t\t\t\t\t\t\t\t\t\tTracking ID\n\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'trackingId\']}\n\t\t\t\t\t\t\t\t\t\tClient Tracking ID\n\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'clientTrackingId\']}\n\t\t\t\t\t\t\t\t\t\tStart Time\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'startTime\']}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tEnd Time\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'endTime\']}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tError Code\n\t\t\t\t\t\t\t\t\t@{body(\'Parse_JSON_Error_Data\')?[\'errorCode\']}\n\t\t\t\t\t\t\t🔗 Direct Access Link
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t🚀 View Run in Azure Portal\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t@{replace(replace(string(body(\'Parse_JSON_Error_Data\')?[\'rawErrorDetails\']),\',\',\', \'),\'{\',\'{ \')}\n\t\t\t\t\t\t\t}
Condition: {
actions: {
'Parse_JSON_-_Error_Details': {
type: 'ParseJson'
inputs: {
content: '@triggerBody()?[\'ErrorObject\']'
schema: {
type: 'object'
properties: {
Status: {
type: 'string'
}
ActionName: {
type: 'string'
}
ErrorMessage: {
type: 'string'
}
Contents: {}
}
}
}
}
}
else: {
actions: {}
}
expression: {
and: [
{
not: {
equals: [
'@empty(triggerBody()?[\'ErrorObject\'])'
'@true'
]
}
}
]
}
type: 'If'
}
}
}
'Case_-_Teams_(Not_implemented)': {
case: 'TEAMS'
actions: {}
}
}
default: {
actions: {}
}
expression: '@toUpper(triggerBody()?[\'MessageService\'])'
type: 'Switch'
}
}
runAfter: {
'Response_-_Success': [
'Succeeded'
]
}
type: 'Scope'
}
Finally: {
actions: {
'Condition_-_Try_succeeded': {
actions: {}
else: {
actions: {
'Terminate_-_Failed': {
type: 'Terminate'
inputs: {
runStatus: 'Failed'
runError: {
code: '500'
message: 'Failed'
}
}
}
}
}
expression: {
and: [
{
equals: [
'@actions(\'Try\')[\'status\']'
'Succeeded'
]
}
]
}
type: 'If'
}
}
runAfter: {
Catch: [
'Skipped'
'Failed'
'TimedOut'
'Succeeded'
]
}
type: 'Scope'
}
Catch: {
actions: {
'Send_email_-_Unable_to_send_full_error_message': {
type: 'ApiConnection'
inputs: {
host: {
connection: {
name: '@parameters(\'$connections\')[\'acsemail\'][\'connectionId\']'
}
}
method: 'post'
body: {
senderAddress: '@parameters(\'senderEmailAddress\')'
recipients: {
to: '@body(\'Select_-_Error_Recipients\')'
}
content: {
subject: 'Unable to send error'
html: '\n\t\n\t\t\n\t\t\t\n\t\t\n\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
🚨 Azure Logic App Error Report
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t❌ Error Summary
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tWorkflow:\n\t\t\t\t\t\t\t\t\t@{workflow().name}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tFailed Action:\n\t\t\t\t\t\t\t\t\tUnable to send notification email, please investigate\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tStatus:\n\t\t\t\t\t\t\t\t\tFailed\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t🔍 Workflow Details
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tPropertyValue\n\t\t\t\t\t\t\t\t\t\tWorkflow Name\n\t\t\t\t\t\t\t\t\t@{workflow().name}\n\n\t\t\t\t\t\t\t🔗 Direct Access Link
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t🚀 View Run in Azure Portal\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t@{replace(replace(string(body(\'Parse_JSON_Error_Data\')?[\'rawErrorDetails\']),\',\',\', \'),\'{\',\'{ \')}\n\t\t\t\t\t\t\t}
importance: 'High'
}
path: '/emails:sendGAVersion'
queries: {
'api-version': '2023-03-31'
}
retryPolicy: {
type: 'none'
}
}
}
'Terminate_-_Unable_to_send_email': {
runAfter: {
'Send_email_-_Unable_to_send_full_error_message': [
'Succeeded'
]
}
type: 'Terminate'
inputs: {
runStatus: 'Failed'
runError: {
code: '500'
message: 'Unable to send error message'
}
}
}
}
runAfter: {
Try: [
'TimedOut'
'Failed'
]
}
type: 'Scope'
}
'Terminate_-_Succeeded': {
runAfter: {
Finally: [
'Succeeded'
]
}
type: 'Terminate'
inputs: {
runStatus: 'Succeeded'
}
}
'Response_-_Success': {
runAfter: {}
type: 'Response'
kind: 'Http'
inputs: {
statusCode: 202
}
}
}
outputs: {}
}
parameters: {
senderEmailAddress: {
value: doNotReplyEmailAddress
}
'$connections': {
value: {
acsemail: {
id: connections.acsemail.id
connectionId: connections.acsemail.connectionId
connectionName: 'acsemail'
}
}
}
}
}
}
```
### Screenshots or Videos
_No response_
### Environment
**Az cli version**
{
"azure-cli": "2.69.0",
"azure-cli-core": "2.69.0",
"azure-cli-telemetry": "1.1.0",
"extensions": {
"azure-devops": "1.0.2",
"logic": "1.1.0"
}
}
### Additional context
_No response_
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.