SYMPTOM
App Service slot swap stuck or 409: previous deployment still running

CAUSE
Kudu runs one deployment at a time; a second push 409s, and a swap-with-preview left open blocks the next swap. Locked files on Windows plans add a third flavor.

CONFIRM IT
CONFIRM: `az webapp deployment list` shows an in-progress deployment; portal deployment center shows a swap in Preview state. Windows plan + zip deploy failing on DLL locks = file-lock flavor.

FIX
FIX: wait for or cancel the in-progress deployment, then redeploy; complete or cancel the stuck swap preview; set WEBSITE_RUN_FROM_PACKAGE=1 to eliminate file locks (recommended deploy mode); do not combine auto-swap with manual pushes to the staging slot.

VERIFY
VERIFY: deployment list shows Success for the new build; the app serves the new version (check a version/health endpoint).