Private/Groups/Resolve-HydrationMissingGroupExistence.ps1

function Resolve-HydrationMissingGroupExistence {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [object]$MissingRequest,

        [Parameter(Mandatory)]
        [string]$ResultTypeName
    )

    $groupDef = $MissingRequest.Item
    Write-Warning "Missing batch existence response for '$($groupDef.displayName)' - retrying directly"

    try {
        $lookupResult = Invoke-MgGraphRequest -Method GET -Uri "beta$($MissingRequest.Request.url)" -ErrorAction Stop
        $matchingGroup = Select-HydrationGroupLookupMatch -LookupResult $lookupResult -GroupDefinition $groupDef
        return [pscustomobject]@{
            ExistingGroup = $matchingGroup
            GroupToCreate = if ($matchingGroup) { $null } else { $groupDef }
            Result        = $null
        }
    } catch {
        $errorMessage = Get-GraphErrorMessage -ErrorRecord $_
        Write-Warning " Failed to check existence of '$($groupDef.displayName)': $errorMessage"
        return [pscustomobject]@{
            ExistingGroup = $null
            GroupToCreate = $null
            Result        = New-HydrationResult -Type $ResultTypeName -Name $groupDef.displayName -Action 'Failed' -Status "Existence check failed: $errorMessage"
        }
    }
}