Skip to content

Commit 7d59134

Browse files
committed
Improve error handling in report endpoints
Added try/catch blocks to Invoke-ListmailboxPermissions and Invoke-ListMFAUsers to return proper HTTP 500 responses and error messages on failure. Updated Get-CIPPMFAStateReport and Get-CIPPMailboxPermissionReport to exclude count rows from database query results.
1 parent 191e269 commit 7d59134

File tree

4 files changed

+17
-7
lines changed

4 files changed

+17
-7
lines changed

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,13 @@ function Invoke-ListmailboxPermissions {
2424
if ($ByUser -eq 'true') {
2525
$ReportParams.ByUser = $true
2626
}
27-
28-
$GraphRequest = Get-CIPPMailboxPermissionReport @ReportParams
29-
$StatusCode = [HttpStatusCode]::OK
27+
try {
28+
$GraphRequest = Get-CIPPMailboxPermissionReport @ReportParams
29+
$StatusCode = [HttpStatusCode]::OK
30+
} catch {
31+
$StatusCode = [HttpStatusCode]::InternalServerError
32+
$GraphRequest = $_.Exception.Message
33+
}
3034

3135
return ([HttpResponseContext]@{
3236
StatusCode = $StatusCode

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListMFAUsers.ps1

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,14 @@ function Invoke-ListMFAUsers {
1414
try {
1515
# If UseReportDB is specified, retrieve from report database
1616
if ($UseReportDB -eq 'true') {
17-
$GraphRequest = Get-CIPPMFAStateReport -TenantFilter $TenantFilter
18-
$StatusCode = [HttpStatusCode]::OK
17+
try {
18+
$GraphRequest = Get-CIPPMFAStateReport -TenantFilter $TenantFilter -ErrorAction Stop
19+
$StatusCode = [HttpStatusCode]::OK
20+
} catch {
21+
Write-Host "Error retrieving MFA state from report database: $($_.Exception.Message)"
22+
$StatusCode = [HttpStatusCode]::InternalServerError
23+
$GraphRequest = $_.Exception.Message
24+
}
1925

2026
return ([HttpResponseContext]@{
2127
StatusCode = $StatusCode

Modules/CIPPCore/Public/Get-CIPPMFAStateReport.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ function Get-CIPPMFAStateReport {
4747
}
4848

4949
# Get MFA state from reporting DB
50-
$MFAItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'MFAState'
50+
$MFAItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'MFAState' | Where-Object { $_.RowKey -ne 'MFAState-Count' }
5151
if (-not $MFAItems) {
5252
throw 'No MFA state data found in reporting database. Sync the report data first.'
5353
}

Modules/CIPPCore/Public/Get-CIPPMailboxPermissionReport.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ function Get-CIPPMailboxPermissionReport {
5959
}
6060

6161
# Get mailboxes from reporting DB
62-
$MailboxItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Mailboxes'
62+
$MailboxItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Mailboxes' | Where-Object { $_.RowKey -ne 'Mailboxes-Count' }
6363
if (-not $MailboxItems) {
6464
throw 'No mailbox data found in reporting database. Sync the mailbox permissions first. '
6565
}

0 commit comments

Comments
 (0)