New-DbaAzAccessToken - Stop eating the caller loop when the token request fails - #10700
Open
andreasjordan wants to merge 2 commits into
Open
New-DbaAzAccessToken - Stop eating the caller loop when the token request fails#10700andreasjordan wants to merge 2 commits into
andreasjordan wants to merge 2 commits into
Conversation
…uest fails Stop-Function -Continue runs PowerShell's continue. No loop encloses this call site inside the command, so the continue unwound out of the command and consumed an iteration of whatever loop the caller runs in: a user's foreach silently skipped an element, and Pester's runner corrupted. The escape only bites the non-EnableException path; with EnableException Stop-Function throws before it gets there. Part of #10638 (do New-DbaAzAccessToken) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…, where the ServicePrincipal path executes (do New-DbaAzAccessToken) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
potatoqualitee
approved these changes
Sep 13, 2026
potatoqualitee
left a comment
Member
There was a problem hiding this comment.
The token-request failure now returns from the command invocation instead of consuming the caller loop, without changing successful token acquisition. The targeted Windows PowerShell coverage and all applicable exact-head checks pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #10638, the sweep for
Stop-Function -Continueoutside an enclosing loop. Same shape as #10637.Problem
New-DbaAzAccessTokenreports a failed token request from the catch at the end of its process block withStop-Function -Continue(public/New-DbaAzAccessToken.ps1:257). No loop encloses that site inside the command, so without-EnableExceptionthecontinueunwinds out of the command and consumes an iteration of whatever loop the caller runs in. Proven in the lab on Windows PowerShell with the plain-script recipe: threeServicePrincipalcalls with a tenant that does not exist left the loop counter at 0 on development. The catch is reachable there because the ADAL type the path uses is not present, which throws; on PowerShell Core the path refuses to run before any request is made, so the catch cannot be reached that way.What changed
The
-Continueis dropped; the catch is the last statement of the process block, so nothing else is needed.Tests
The test file had no integration tests. New context
When the service principal cannot be authenticated: three calls in a loop, asserting the loop count and theFailurewarning, skipped on Core with a comment saying why. Through the testing-dbatools harness: green on Windows PowerShell with the fix; the plain-script proof above is the red-on-old.created by Claude and reviewed by Andreas Jordan
🤖 Generated with Claude Code