Skip to content

[Bug] InvalidWorkflowTriggerRecurrence error during deployment — ADF trigger startTime missing zone designator #2157

@haflidif

Description

@haflidif

GitHub Issue: ADF Schedule Triggers fail to start — missing UTC zone designator in startTime

Title

InvalidWorkflowTriggerRecurrence error during deployment — ADF trigger startTime missing zone designator

Repository

https://github.com/microsoft/finops-toolkit


Issue Body

Describe the bug

FinOps Hub v14 fresh deployments fail at the Microsoft.FinOpsHubs.Init and Microsoft.FinOpsHubs.StartTriggers deployment script steps. The Init-DataFactory.ps1 script cannot start the ADF schedule triggers because the startTime values are missing the UTC zone designator (Z).

Error message

Microsoft.Rest.Azure.CloudException: HTTP Status Code: BadRequest
Error Code: BadRequest
Error Message: ErrorCode=InvalidWorkflowTriggerRecurrence, 
ErrorMessage=The recurrence of trigger has an invalid start time 
'2023-01-01T01:01:00.0000000' zone designator for time zone 'UTC'. 
Expected start time format with zone designator is 'yyyy-MM-ddTHH:mm:ssZ'.

Affected triggers

Trigger Name Current startTime (broken) Expected startTime
config_DailySchedule 2023-01-01T01:01:00 2023-01-01T01:01:00Z
config_MonthlySchedule 2023-01-05T01:11:00 2023-01-05T01:11:00Z
queries_DailySchedule 2023-01-01T01:01:00 2023-01-01T01:01:00Z

Steps to reproduce

  1. Deploy FinOps Hub v14 using the finops-hub-latest.json ARM template (fresh deployment, not upgrade)
  2. Wait for the deployment to reach the Microsoft.FinOpsHubs.Init step
  3. The Init-DataFactory.ps1 script attempts to start the triggers
  4. Azure ADF rejects the trigger start due to invalid startTime format
  5. The script retries 20 times, each time seeing "Trigger is Stopped, expected Started"
  6. Deployment fails

Expected behavior

The ADF schedule triggers should have startTime values with the UTC zone designator (Z suffix) so they can be started successfully during deployment.

Environment

  • FinOps Toolkit version: v14 (April 2026)
  • Template: finops-hub-latest.json
  • Deployment type: Fresh deployment (not upgrade)
  • Regions tested: Sweden Central, Norway East
  • Deployment method: Azure Portal ARM template deployment

Suggested fix

In the Bicep template(s) that define the ADF schedule triggers, append Z to the startTime values:

// Before (broken)
startTime: '2023-01-01T01:01:00'

// After (fixed)
startTime: '2023-01-01T01:01:00Z'

Workaround

After deployment fails, manually update the trigger startTime values via Azure CLI:

$rg = "<resource-group>"
$adf = "<data-factory-name>"

az datafactory trigger update --resource-group $rg --factory-name $adf `
    --name "config_DailySchedule" `
    --set "properties.recurrence.startTime=2023-01-01T01:01:00Z"

az datafactory trigger update --resource-group $rg --factory-name $adf `
    --name "config_MonthlySchedule" `
    --set "properties.recurrence.startTime=2023-01-05T01:11:00Z"

az datafactory trigger update --resource-group $rg --factory-name $adf `
    --name "queries_DailySchedule" `
    --set "properties.recurrence.startTime=2023-01-01T01:01:00Z"

Then start all triggers manually:

$triggers = @("queries_DailySchedule", "msexports_ManifestAdded", "config_SettingsUpdated", 
              "config_DailySchedule", "config_MonthlySchedule", "ingestion_ManifestAdded")

foreach ($t in $triggers) {
    az datafactory trigger start --resource-group $rg --factory-name $adf --name $t -o none
}

Additional context

  • Reproduced independently on two separate tenants/subscriptions with fresh v14 deployments
  • The v14 release notes mention fixing "US Government cloud time zone deployment failures" — this may be a related regression
  • Upgrades from v13 may not hit this issue if triggers were already started with valid startTime values from a previous version

Labels

bug, hubs

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs: Triage 🔍Untriaged issue needs to be reviewed

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions