Skip to content

Follow-up: provision cancellation UX polish #7996

Description

@vhvb1989

Tracking issue for follow-up work on the Ctrl+C provision cancellation flow introduced in #7795. These items came out of @kristenwomack's customer-experience review and were intentionally deferred from that PR to keep its scope focused on the customer-blocking copy/telemetry fixes (R1, R2, R3, R4, R9, R10, R11, R15, R16, all shipped in 9071f57).

Should-improve

  • (R5) Option ordering / labels. Pressing Ctrl+C signals "stop" — listing 'Leave the Azure deployment running and stop azd' first makes users re-read. Consider listing 'Cancel the Azure deployment too' first while keeping 'Stop azd, but let Azure finish the deployment (default)' as the highlighted default. Needs a quick check that our `Select` widget supports default-selection independent of display order.
  • (R6) 5-minute wait UX. Today the user just stares at a single spinner for up to 5 minutes during the cancel-await window. Add: (a) elapsed-time tick on the spinner (`Waiting for Azure to confirm cancellation… 45s / 5m`); (b) consider a 60–90s foreground wait that auto-degrades to a `still canceling, track here` message + background exit; (c) a third Ctrl+C (during cancel-await) that abandons the wait (not the cancel) and prints the portal URL.
  • (R7) Discoverability of new Ctrl+C semantics. Users have no way to learn the new behavior. Add a session-level tip on `azd provision` / `azd up` startup, an `aka.ms/azd/ctrlc` link in prompt help, and consider an `AZD_INTERRUPT_MODE=immediate|prompt` env var for power users who want the old default-immediate-exit behavior back.
  • (R8) Mirror docs to learn.microsoft.com. `cli/azd/docs/provision-cancellation.md` is contributor-facing. Mirror to public docs and reference the public URL from the prompt help / aka.ms link.

Nice-to-have

  • (R12) Skip the prompt for Deployment Stacks. Stacks don't support per-deployment Cancel; today we surface that as a `leave-running` outcome after the user picks Cancel. Detect provider shape up front and go straight to leave-running with explicit messaging instead of offering a choice that doesn't exist.
  • (R13) Spinner→prompt accessibility. The transition from spinner to interactive prompt can be missed by screen readers (e.g. NVDA on Windows Terminal). Emit a non-overwritten plain line first (`Interrupt received. Showing options:`).
  • (R14) WCAG 1.4.1 color check. Confirm that the consequences of the leave-running choice are not conveyed by color alone — pair the warning color with `⚠` or `[warning]` text.

Each item is small enough to ship independently.

cc @kristenwomack @vhvb1989

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/provisioningBicep/Terraform/ADE provisioningarea/uxUX, prompts, output formattingenhancementNew feature or improvement

    Fields

    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions