Skip to content

Regression in StaticSitesClient 20260720.247.2: Next.js hybrid deployments fail with "Failed to deploy the Azure Functions" (worked on 20260714.240.1) #1778

Description

Summary

Since the StaticSitesClient rolled from 20260714.240.1 to 20260720.247.2 (~2026-07-21 → 2026-07-27 in our deployments), every deployment of our Next.js hybrid app fails with:

Status: Failed. Time: 33.0460794(s)
Deployment Failed :(
Deployment Failure Reason: Failed to deploy the Azure Functions.

The failure is server-side, after a successful artifact upload ("Finished Upload. Polling on deployment." → Failed at ~33s), on two independent Static Web Apps resources (staging + production, separate subscriptions). The identical application code deployed successfully on 2026-07-21 with client 20260714.240.1.

Evidence it is not application-side

We reproduced the failure 5 times across every variable we control:

Attempt App state Result
2026-07-21 Next 16.2.6 ✅ success (client 20260714.240.1)
2026-07-27 #1 Next 16.2.12 ❌ (client 20260720.247.2)
2026-07-27 #2 Next 16.2.12, sharp/@img excluded via outputFileTracingExcludes (rules out bundle size)
2026-07-27 #3 Reverted to Next 16.2.6 — near-identical to the last green deploy
2026-07-27 #4 Next 16.2.6 + staticwebapp.config.json platform.apiRuntime: node:20

The only delta between the last success and the failures is the deployment client version printed in the action logs.

Environment

  • GitHub Actions, Azure/static-web-apps-deploy@v1, prebuilt app (skip_app_build: true), Next.js hybrid (App Router, ISR + server rendering), output .next
  • Node warning in logs: "Defaulting to version: 22" (identical in the last successful run)
  • Log excerpt (identical shape in all failures): Detected the following framework: Next.jsRepackaged Next.js app to deploy on the backendZipping Api Artifacts → upload OK → poll → Failed to deploy the Azure Functions

Ask

  1. Was there a change in the Next.js repackaging / functions provisioning path in 20260720.247.2?
  2. Is there a supported way to pin the deployment client version in the GitHub Action as a mitigation?

Deployment IDs available on request (e.g. 32541b25-d739-419a-8fcc-62ddaadeb7a3, 2026-07-27). Happy to provide full logs privately.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions