Fix nil panic in provision preview when ARM returns nil After field#6282
Fix nil panic in provision preview when ARM returns nil After field#6282
Conversation
Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com>
|
/azp run azure-dev - cli |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Azure Dev CLI Install InstructionsInstall scriptsMacOS/Linux
bash: pwsh: WindowsPowerShell install MSI install Standalone Binary
MSI
Documentationlearn.microsoft.com documentationtitle: Azure Developer CLI reference
|
|
/check-enforcer override |
Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com>
* Initial plan * Create changelog for v1.22.0 release Co-authored-by: hemarina <104857065+hemarina@users.noreply.github.com> * Add additional PRs #6282, #6180, #6281 to v1.22.0 changelog Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com> * Add PR #6232 to v1.22.0 changelog Co-authored-by: hemarina <104857065+hemarina@users.noreply.github.com> * Update cli/azd/CHANGELOG.md --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: hemarina <104857065+hemarina@users.noreply.github.com> Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com>
azd provision --previewpanics when ARM's WhatIf API returnsnilfor theAfterfield, which occurs when resources are being deleted.Changes
Afterfirst, fall back toBefore(for deletes), skip if both nilTest coverage
Added
TestPreviewWithNilResourceStatecovering Create (nil Before), Delete (nil After), Modify (both present), and edge case (both nil → skipped).Original prompt
This section details on the original issue you should resolve
<issue_title>azd provision preview fails with interface {} is nil</issue_title>
<issue_description>Output from
azd versionRun
azd versionand copy and paste the output here:azd version 1.20.0 (commit 0031e30)
Command that fails
azd provision -e environment_name --preview --no-prompt
Additional context
Sometimes the command fails, the issue started just some days ago. Seems to sometime work and sometimes not, mostly not. Running on Devops pipeline.
Output
Generating infrastructure preview
panic: interface conversion: interface {} is nil, not map[string]interface {}
goroutine 1 [running]:
github.com/azure/azure-dev/cli/azd/pkg/infra/provisioning/bicep.(*BicepProvider).Preview(0xc000363680, {0x5570b331f718, 0xc000025ec0})
github.com/azure/azure-dev/cli/azd/pkg/infra/provisioning/bicep/bicep_provider.go:739 +0x537
github.com/azure/azure-dev/cli/azd/pkg/infra/provisioning.(*Manager).Preview(0xc000624240, {0x5570b331f718, 0xc000025ec0})
github.com/azure/azure-dev/cli/azd/pkg/infra/provisioning/manager.go:265 +0x42
github.com/azure/azure-dev/cli/azd/internal/cmd.(*ProvisionAction).Run.func2()
github.com/azure/azure-dev/cli/azd/internal/cmd/provision.go:304 +0x36
github.com/azure/azure-dev/cli/azd/pkg/ext.(*EventDispatcher[...]).Invoke(0x5570b3334a40, {0x5570b331f718, 0xc000025ec0}, {0x5570b23e1d30, 0x9}, {0xc000362a00, 0xc000d40090?}, 0xc000786808?)
github.com/azure/azure-dev/cli/azd/pkg/ext/event_dispatcher.go:131 +0x242
github.com/azure/azure-dev/cli/azd/internal/cmd.(*ProvisionAction).Run(0xc0007b2240, {0x5570b331f718, 0xc000025ec0})
github.com/azure/azure-dev/cli/azd/internal/cmd/provision.go:301 +0x11a9
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*MiddlewareRunner).RunAction.func1({0x5570b331f718, 0xc000025ec0})
github.com/azure/azure-dev/cli/azd/cmd/middleware/middleware.go:129 +0x41f
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*LoginGuardMiddleware).Run(0xc000117740, {0x5570b331f718, 0xc000025ec0}, 0xc000280f40)
github.com/azure/azure-dev/cli/azd/cmd/middleware/login_guard.go:59 +0x89
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*MiddlewareRunner).RunAction.func1({0x5570b331f718, 0xc000025ec0})
github.com/azure/azure-dev/cli/azd/cmd/middleware/middleware.go:112 +0x2ae
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*TelemetryMiddleware).Run(0xc00059eb60, {0x5570b331f718, 0xc000024420}, 0xc000280f40)
github.com/azure/azure-dev/cli/azd/cmd/middleware/telemetry.go:81 +0x86e
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*MiddlewareRunner).RunAction.func1({0x5570b331f718, 0xc000024420})
github.com/azure/azure-dev/cli/azd/cmd/middleware/middleware.go:112 +0x2ae
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*ErrorMiddleware).Run(0xc000281000, {0x5570b331f718, 0xc000024420}, 0xc000280f40)
github.com/azure/azure-dev/cli/azd/cmd/middleware/error.go:53 +0x6f
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*MiddlewareRunner).RunAction.func1({0x5570b331f718, 0xc000024420})
github.com/azure/azure-dev/cli/azd/cmd/middleware/middleware.go:112 +0x2ae
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*UxMiddleware).Run(0xc0002d97c0, {0x5570b331f718, 0xc000024420}, 0xc000280f40)
github.com/azure/azure-dev/cli/azd/cmd/middleware/ux.go:38 +0xa5
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*MiddlewareRunner).RunAction.func1({0x5570b331f718, 0xc000024420})
github.com/azure/azure-dev/cli/azd/cmd/middleware/middleware.go:112 +0x2ae
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*DebugMiddleware).Run(0xc0003ae468, {0x5570b331f718, 0xc000024420}, 0xc000280f40)
github.com/azure/azure-dev/cli/azd/cmd/middleware/debug.go:51 +0x374
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*MiddlewareRunner).RunAction.func1({0x5570b331f718, 0xc000024420})
github.com/azure/azure-dev/cli/azd/cmd/middleware/middleware.go:112 +0x2ae
github.com/azure/azure-dev/cli/azd/cmd/middleware.(*MiddlewareRunner).RunAction(0xc0002d96c0, {0x5570b331f718, 0xc000024420}, 0xc0003b5860, {0xc0004d9218, 0x14})
github.com/azure/azure-dev/cli/azd/cmd/middleware/middleware.go:133 +0x136
github.com/azure/azure-dev/cli/azd/cmd.(*CobraBuilder).configureActionResolver.func1(0xc0007ba608, {0xc000280e40, 0x0, 0x4})
github.com/azure/azure-dev/cli/azd/cmd/cobra_builder.go:133 +0x37c
github.com/spf13/cobra.(*Command).execute(0xc0007ba608, {0xc000280e00, 0x4, 0x4})
github.com/spf13/cobra@v1.10.1/command.go:1015 +0xb02
github.com/spf13/cobra.(*Command).ExecuteC(0xc00012ef08)
github.com/spf13/cobra@v1.10.1/command.go:1148 +0x465
github.com/spf13/cobra.(*Command).Execute(...)
github.com/spf13/cobra@v1.10.1/command.go:1071
github.com/spf13/cobra.(*Command).ExecuteContext(...)
github.com/spf13/cobra@v1.10.1/command.go:1064
github.com/azure/azure-dev/cli/azd/cmd.ExecuteWithAutoInstall({0x5570b331f660, 0x5570b4026ce0}, 0xc000278f60)
github.com/azure/azure-dev/cli/azd/cmd/auto_install.go...
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.