Improve extension startup failure warnings with categorized messages#7018
Improve extension startup failure warnings with categorized messages#7018hemarina merged 7 commits intoAzure:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR improves the user experience when extensions fail to start during azd commands (like azd up). Instead of a generic "Extension startup failures detected" warning, it now classifies failures into actionable categories: extensions needing an upgrade (with version info and the exact command to run), and extensions that timed out. It addresses issue #6742 where verbose, unhelpful error output was shown for out-of-date extensions.
Changes:
- Introduced
extensionFailurestruct to capture the extension, error, and timeout status at failure time, replacing the simple[]*extensions.Extensionslice. - Added categorized warning display that checks the local registry cache for available updates and formats upgrade/timeout messages with actionable commands highlighted in blue.
- Replaced the generic failure message and
AZD_EXT_TIMEOUThint with categorized output and a--debughint for further details.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
wbreza
left a comment
There was a problem hiding this comment.
Code Review Summary
✅ What Looks Good
- Well-categorized output with upgrade vs timeout distinction gives users clear next steps
- Singular/plural handling ("1 extension" vs "N extensions") is properly managed throughout
- Best-effort upgrade check — cache errors are logged but don't block warning display
extensionFailurestruct cleanly captures error and timeout status at failure time- Prior Copilot grammar feedback was already addressed
Findings Summary
| Priority | Count |
|---|---|
| 🟡 Medium | 3 |
| Total | 3 |
Overall Assessment: Solid improvement over the generic warning. All findings are suggestions for polish. See inline comments.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
wbreza
left a comment
There was a problem hiding this comment.
📋 Re-review — PR #7018
Re-review context: New commits since my last review on March 6.
Previous Findings Status
- ✅ Wording "needs upgrade" → Fixed! Now says "An update is available that may resolve this"
- ✅ Singular/plural grammar → Properly handled
- ⏸️ ux.WarningMessage → Acknowledged, deferred for future
Current Assessment
The core approach is solid: show users that some extensions may have encountered an error during startup and that an upgrade may be available — with version information. The categorized display (upgrade available vs. timeout) is clear and actionable.
One concern: the extErrors block still prints raw errors to the console without --debug gating (agreed with Copilot's inline comment on that — replied there).
Otherwise this looks good. 👍
Overall Assessment: Approve — with the extErrors raw output fix as a follow-up.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
Azure Dev CLI Install InstructionsInstall scriptsMacOS/Linux
bash: pwsh: WindowsPowerShell install MSI install Standalone Binary
MSI
Documentationlearn.microsoft.com documentationtitle: Azure Developer CLI reference
|
Summary
Replaces the generic extension startup failure warning with categorized, actionable messages.
Problem
When extensions failed to start during
azd up, users saw a single generic warning ("Extension startup failures detected") with no guidance on why the extension failed or what to do about it.Changes
Categorized failure display: Extensions that fail to start are now classified into:
0.1.0 → 0.1.1) with the exactazd extension upgradecommand to run--debugfor detailsSingle vs. multiple formatting: When only one extension fails in a category, the message is inline. When multiple fail, they're shown as a bulleted list.
Actionable hints: Upgrade commands and
--debugflag are highlighted in blue for visibility.Structured failure tracking: Introduced
extensionFailurestruct that captures the extension, error, and whether it was a timeout — determined at failure time rather than by inspecting the error type later.Best-effort update check: Uses the local registry cache to check for updates on failed extensions. Cache errors are logged (visible with
--debug) but don't block warning display.Example output
Single extension needs upgrade:
Multiple extensions need upgrade:
Fixes #6742