Ionic Framework incident

Issues authenticating with Azure DevOps in Appflow

Minor Resolved View vendor source →

Ionic Framework experienced a minor incident on January 7, 2026 affecting Ionic Appflow Build Service, lasting 4d 20h. The incident has been resolved; the full update timeline is below.

Started
Jan 07, 2026, 06:57 PM UTC
Resolved
Jan 12, 2026, 02:58 PM UTC
Duration
4d 20h
Detected by Pingoru
Jan 07, 2026, 06:57 PM UTC

Affected components

Ionic Appflow Build Service

Update timeline

  1. investigating Jan 07, 2026, 06:57 PM UTC

    Customers using Azure DevOps as their git provider may be unable to link their repositories or complete builds in Appflow. We are looking into the issue and will share updates as we have more information.

  2. monitoring Jan 07, 2026, 10:27 PM UTC

    A fix has been implemented and we are monitoring the results. If you continue to experience issues with builds, please try the following steps: 1. Revoke the Azure DevOps integration in Personal settings > Integrations 2. Reconnect the repository in your app's git settings 3. Push a new commit in your repository 4. Trigger a build from the new commit and confirm whether the cloning process completes successfully Please reach out to us if the steps above do not resolve the issue.

  3. resolved Jan 12, 2026, 02:58 PM UTC

    This incident has been resolved.

  4. postmortem Jan 13, 2026, 05:18 PM UTC

    On January 6th, 2026, at 1:53 PM EST, Appflow's Azure DevOps integration stopped working. Customers using Azure DevOps as their git provider were unable to authenticate, link repositories, or run builds. The issue was caused by the expiration of our Azure DevOps OAuth client secret, which had been valid for 5 years since its creation in January 2021. The incident was reported on January 7th, 2026, at 12:27 PM EST, and initially resolved at 3:27 PM EST by rotating the secret and redeploying the authentication service. However, on January 8th, 2026, at 11:04 AM EST, we discovered that builds were still failing because a second service \(appflow-apps\) also had a copy of the expired secret. Full resolution was confirmed at 12:51 PM EST after updating the secret in both locations.