Control 4.2: Site Access Reviews and Certification - Troubleshooting
This playbook provides troubleshooting guidance for Control 4.2.
Common Issues
| Issue | Cause | Resolution |
|---|---|---|
| Data access governance reports not available | SharePoint Advanced Management not licensed | Verify SAM Plan 1 license is assigned; navigate to M365 Admin Center > Billing to confirm |
| Site attestation policy not sending notifications | Email settings misconfigured or owners not defined | Verify site owners are assigned; check notification settings in policy; review mail flow rules |
| Access review not starting automatically | Recurrence pattern misconfigured | Verify recurrence settings in review definition; check start date is not in the past |
| Decisions not being auto-applied | Auto-apply disabled or permissions insufficient | Enable autoApplyDecisionsEnabled in review settings; verify service principal has permissions |
| Export fails with permission error | Insufficient Graph API permissions | Ensure AccessReview.ReadWrite.All scope is consented; reconnect with appropriate scopes |
| Site owners not receiving attestation requests | Owner property not set on site | Use Get-SPOSite to verify owner; use Set-SPOSite -Owner to assign |
Detailed Troubleshooting
Issue: Data Access Governance Reports Not Available
Symptoms: Reports section shows error or "Get started" never completes.
Diagnostic Steps:
- Verify SharePoint Advanced Management license:
- Navigate to M365 Admin Center > Billing > Licenses
-
Confirm "SharePoint Advanced Management" is assigned
-
Check report generation status:
- Reports can take several hours to generate on first run
-
Large tenants may take longer
-
Verify admin permissions:
- Must have SharePoint Admin or Entra Global Admin role
Resolution: - Confirm license assignment - Wait up to 24 hours for initial report generation - Contact Microsoft support if issue persists after 48 hours
Issue: Site Attestation Policy Not Sending Notifications
Symptoms: Site owners not receiving attestation request emails.
Diagnostic Steps:
-
Verify site owners are assigned:
Get-SPOSite -Identity "https://tenant.sharepoint.com/sites/SiteName" | Select-Object Url, Owner, SecondaryContact -
Check notification settings in policy:
- Navigate to Policies > Site lifecycle management > Site attestation policies
-
Verify notification days are configured
-
Check email routing:
- Verify owner email addresses are valid
- Check spam/junk folders
- Review Exchange mail flow rules
Resolution: - Assign owners to all sites requiring attestation - Verify notification settings in policy - Check email delivery (may be blocked by mail rules)
Issue: Access Review Not Starting Automatically
Symptoms: Scheduled access review shows "Not started" status.
Diagnostic Steps:
-
Verify recurrence pattern:
$review = Get-MgIdentityGovernanceAccessReviewDefinition -AccessReviewScheduleDefinitionId "review-id" $review.Settings.Recurrence | ConvertTo-Json -
Check start date:
- Start date must be in the past or present for review to begin
-
Future start dates will delay first instance
-
Verify review is enabled:
$review | Select-Object DisplayName, Status
Resolution: - Update recurrence settings if misconfigured - Adjust start date if needed - Ensure review status is "InProgress" not "NotStarted"
Issue: Decisions Not Being Auto-Applied
Symptoms: Access review completes but denied users still have access.
Diagnostic Steps:
-
Verify auto-apply setting:
$review = Get-MgIdentityGovernanceAccessReviewDefinition -AccessReviewScheduleDefinitionId "review-id" $review.Settings.AutoApplyDecisionsEnabled -
Check for pending decisions:
$instances = Get-MgIdentityGovernanceAccessReviewDefinitionInstance ` -AccessReviewScheduleDefinitionId "review-id" $instances | Select-Object Status -
Verify service principal permissions:
- Auto-apply requires appropriate permissions to modify group membership
Resolution: - Enable autoApplyDecisionsEnabled in review settings - Verify all decisions are submitted (not NotReviewed) - Check service principal has Directory.ReadWrite.All permission
Issue: Site Owners Not Receiving Attestation Requests
Symptoms: Attestation policy is active but owners report no notifications.
Diagnostic Steps:
-
Verify Owner property is set:
Get-SPOSite -Limit All | Where-Object { [string]::IsNullOrEmpty($_.Owner) } | Select-Object Url, Title -
Check policy scope:
-
Verify site matches policy criteria (sensitivity label, URL pattern)
-
Verify mail delivery:
- Check owner's mailbox (including spam/junk)
- Review Exchange message trace
Resolution:
- Assign owners: Set-SPOSite -Identity $url -Owner "user@domain.com"
- Verify site matches attestation policy scope
- Check email delivery via Exchange admin center
Diagnostic Commands
# Comprehensive access review health check
Write-Host "=== Access Review Diagnostic ===" -ForegroundColor Cyan
Connect-MgGraph -Scopes "AccessReview.Read.All"
# List all access reviews with status
Get-MgIdentityGovernanceAccessReviewDefinition |
Select-Object DisplayName, Status, CreatedDateTime |
Format-Table
# Check specific review details
$reviewId = "your-review-id"
$review = Get-MgIdentityGovernanceAccessReviewDefinition -AccessReviewScheduleDefinitionId $reviewId
Write-Host "`nReview: $($review.DisplayName)" -ForegroundColor Yellow
Write-Host " Status: $($review.Status)"
Write-Host " Auto-apply: $($review.Settings.AutoApplyDecisionsEnabled)"
Write-Host " Default decision: $($review.Settings.DefaultDecision)"
Write-Host " Duration: $($review.Settings.InstanceDurationInDays) days"
# Check instances
$instances = Get-MgIdentityGovernanceAccessReviewDefinitionInstance -AccessReviewScheduleDefinitionId $reviewId
Write-Host "`nInstances:" -ForegroundColor Yellow
$instances | ForEach-Object {
Write-Host " $($_.Id) - Status: $($_.Status), End: $($_.EndDateTime)"
}
Escalation Path
- Level 1: SharePoint Admin - Report generation and policy configuration
- Level 2: Identity Governance Administrator - Access review workflows in Entra ID
- Level 3: Microsoft Support - Product issues or feature limitations
- Level 4: AI Governance Committee - Policy exceptions and review scope decisions
How to Confirm Configuration is Active
Via SharePoint Admin Portal
- Navigate to Reports > Data access governance
- Verify reports show recent data
- Navigate to Policies > Site lifecycle management
- Verify attestation policy shows "Active" status
Via Entra Admin Portal
- Navigate to Identity governance > Access reviews
- Verify review shows "InProgress" or scheduled status
- Check recent instances completed successfully
Via PowerShell
# Quick status check
Connect-MgGraph -Scopes "AccessReview.Read.All"
Connect-SPOService -Url "https://yourtenant-admin.sharepoint.com"
# Check access reviews
$reviews = Get-MgIdentityGovernanceAccessReviewDefinition
Write-Host "Access Reviews: $($reviews.Count)" -ForegroundColor Cyan
# Check site ownership
$sites = Get-SPOSite -Limit All | Where-Object { $_.Template -notlike "*SPSPERS*" }
$orphaned = ($sites | Where-Object { [string]::IsNullOrEmpty($_.Owner) }).Count
Write-Host "Sites without owners: $orphaned" -ForegroundColor $(if ($orphaned -gt 0) { "Yellow" } else { "Green" })
Back to Control 4.2 | Portal Walkthrough | PowerShell Setup | Verification Testing
Updated: January 2026 | Version: v1.2