Skip to content

swa deploy exits 0 without uploading files — StaticSitesClient receives unrecognized --environment flag #998

@jongio

Description

@jongio

Describe the bug

swa deploy ./dist --deployment-token <TOKEN> --env default reports "Preparing deployment. Please wait..." then exits with code 0 - but no files are uploaded to the Static Web App.

Root cause (from investigation)

The SWA CLI passes --environment to the underlying StaticSitesClient binary, but that binary only recognizes --environmentName. When StaticSitesClient receives the unrecognized flag, it prints its help text to stderr and exits 0, which the CLI interprets as success.

Evidence from running StaticSitesClient directly:

StaticSitesClient --app dist --apiToken <TOKEN> --environment default --skipAppBuild true
ERROR(S):
  Option 'environment' is unknown.

Exit code: 0 (not 1), so the CLI's if (exitCode !== 0) check passes.

To Reproduce

  1. Have a built static site in ./dist
  2. Run: swa deploy ./dist --deployment-token <TOKEN> --env default
  3. Observe output stops at "Preparing deployment. Please wait..."
  4. No "Deployment Complete" message, no upload progress
  5. Exit code is 0
  6. Verify on Azure Portal or via curl that old files are still being served

Expected behavior

  • Either pass the correct --environmentName flag to StaticSitesClient
  • Or detect the silent failure (no "Deployment Complete" in StaticSitesClient output) and report an error

Workaround

Call StaticSitesClient directly with the correct flags:

StaticSitesClient --deploymentaction upload \
  --app "dist" \
  --appArtifactLocation "." \
  --apiToken <TOKEN> \
  --skipAppBuild true \
  --skipApiBuild true \
  --deploymentProvider Custom

Environment

  • SWA CLI version: 2.0.8
  • Node.js: v24.12.0 (also reproduced with v20.11.0)
  • OS: Windows 11
  • StaticSitesClient version: 1.0.0+689a6c1fe8fc32f40348cc41223a7e9d83dd43d2

Related issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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