Welcome to the December 2025 edition of the Azure Developer CLI (azd) release blog—our final release of the year! This post covers releases 1.22.0 through 1.22.5, wrapping up 2025. To share your feedback and questions, join the December release discussion on GitHub.
Highlights:
- Enhanced extension capabilities with custom configuration and interactive mode support
- Improved provisioning progress display and error handling
- Multiple bug fixes for Container Apps, Azure Pipelines, and deployment workflows
- Better support for Terraform and Static Web Apps
New features
🔌 Extension Framework Enhancements
If you’re new to azd extensions, they’re modular additions that extend azd functionality beyond built-in commands. Extensions are plugins that introduce new CLI commands, allowing you to tailor azd to specific needs and scenarios. With extensions, you can add new capabilities, automate repetitive tasks, and integrate Azure services or third-party tools directly from the CLI. For more details, check out our introduction to the azd extension framework.
- Custom configuration properties: Extensions can now define custom configuration properties at both project and service levels, enabling more flexible and powerful extension behaviors. This change allows extension authors to add specialized configurations without modifying core
azdschemas. [#6196] - Interactive mode support: Extensions now support interactive mode, enabling TUI (Text User Interface) applications to provide richer user experiences. This change allows extensions to prompt users for input and display interactive interfaces when needed. [#6367]
- Distributed tracing and structured error handling: Extensions benefit from improved observability with distributed tracing support and structured error handling, making it easier to diagnose issues and track execution flows. [#6321]
✨ User Experience Improvements
- Interactive environment selector: The
azd env selectcommand now provides an interactive selector when no environment is specified, making it easier to switch between environments without remembering exact names. [#6347] - Improved provisioning progress display: Provisioning progress polling interval reduced from 10 seconds to 3 seconds, providing more responsive status updates during infrastructure deployment. [#6256]
- Enhanced error handling: Better error messages are now displayed when loading invalid
azure.yamlfiles, replacing panics with clear, actionable error descriptions. [#6373] - Improved error handling flow: Three-solution prompt added with upgraded langchain dependency for better error resolution guidance. [#6313]
⚙️ Azure Configuration
- azure.yml file support:
azdnow supportsazure.ymlas an alternative toazure.yamlfor project configuration files, providing more flexibility in naming conventions. [#6285] - Template gallery integration: Template gallery links are now integrated into
azd initandazd template listcommands, making it easier to discover and start from templates. [#6300] - Directory creation prompt: Using
-C/--cwdwith a nonexistent path,azdnow prompts to create the directory automatically. [#6266]
🎁 Other Enhancements
- Language-specific .gitignore templates: Extension scaffolding with
azd x initnow includes language-specific.gitignoretemplates for cleaner repositories. [#6232] - Microsoft Foundry name: Updated naming from Azure AI Foundry to Microsoft Foundry throughout the codebase and documentation. [#6270]
🪲 Bugs fixed
Extension and Deployment Fixes
- Extension installation fix: Fixed panic during provisioning caused by custom configuration properties feature introduced in v1.22.4, is temporarily reverted. [#6408]
- Extension installation prompts: Fixed
azd provision --previewincorrectly prompting to install extensions for custom service targets when the extension is already installed. [#6398] - Resource discovery: Improved resource discovery logic to correctly identify resources associated with deployments during deletion operations. [#6356]
- Display names: Fixed display names for Foundry and Foundry project resources in output. [#6385]
Container Apps Improvements
- Container App deployment: Fixed Container App deployment to correctly resolve infrastructure path from defaults when using layered provisioning with service module settings. [#6360]
- Container App revision deployment: Fixed Container App revision deployment to respect service
modulesetting inazure.yaml. [#6346] - Revision mode error messages: Fixed unclear error message when deploying to improperly tagged Container App in nonrevision mode. [#6353]
Azure Pipelines and Deployment
- GitHub URL parsing: Fixed GitHub URL parsing to support branch names containing slashes. [#6351]
- Static Web App deployment: Fixed Static Web App deployment by ensuring framework service requires restore and produces correct artifacts. [#6341]
- azd down deletion: Improved
azd downdeletion behavior for resource-group-scoped deployments. [#6345] - Hooks in CI/CD: Fixed hooks not running in CI/CD scenarios when
.azuredirectory doesn’t exist. [#6277] - ARM nil field handling: Fixed panic in
azd provision --previewwhen ARM returns nil After field during resource deletion. [#6282] - Deployment skipping: Fixed
azd provisionskipping deployment when resource groups were deleted outside of azd. [#6281]
Environment Variables
- JSON-escaped variables: Fixed JSON-escaped environment variables being lost when syncing to remote CI/CD pipelines. Thanks @Menghua1 for the contribution! [#5568]
Aspire Improvements
- Non-HTTP protocols: Relaxed Aspire binding validation for non-HTTP protocols as simple TCP. [#6180]
- Revision-based deployments: Fixed Container Apps deployment error when using revision-based deployments. [#6255]
Other changes
- Bicep CLI update: Updated Bicep CLI to v0.39.26. [#6247]
- Error telemetry: Improved error logging telemetry with specific error type classification for better diagnostics. [#6389]
- Usage tracking: Added usage tracking telemetry for layered provisioning and revision-based ACA deployments. [#6357]
End of year thanks!
As we wrap up another year of azd development, we want to thank all of the contributors, template authors, and community members who made this journey possible. Your code contributions, templates, feedback, and real-world insights drive azd‘s evolution and help developers build with Azure and Foundry with confidence.
Looking ahead to 2026, we plan to grow the extension ecosystem. You’ve already seen extensions like the azd AI agent extension for Microsoft Foundry and the GitHub Copilot coding agent configuration extension, and we have more in the pipeline to streamline your workflows and make it easier to build applications in agentic developer flows.
Want to build your own extension? The azd extension framework makes it easy to create custom commands tailored to your team’s specific needs—whether that’s integrating with third-party services, automating deployment workflows, or adding domain-specific tooling. We can’t wait to see what you build!
Here’s to continued collaboration and innovation in 2026!
🙋♀️ New to azd?
If you’re new to the Azure Developer CLI, azd is an open-source command-line tool that accelerates the time it takes to get your application from local development environment to Azure. azd provides best practice, developer-friendly commands that map to key stages in your workflow, whether you’re working in the terminal, your editor or CI/CD.
Get started with azd:
- Install azd
- Explore templates: To find templates for your preferred language and Azure services, browse the Awesome azd template gallery and AI App Templates (https://aka.ms/ai-gallery).
- Learn more: Check out the official documentation and troubleshooting guide.
- Get help: If you encounter issues or have questions, visit our GitHub repository to file an issue or start a discussion.
0 comments
Be the first to start the discussion.