Skip to content

Troubleshooting

Start with the place that shows the problem, then check the log (C:\IntensiveReportsLogs\ unless you changed LoggingRootPath). As an administrator, Settings > Data & cache and PowerShell Diagnostics show most causes without the log.

SymptomCauseFix
IIS error HTTP Error 500.19the ASP.NET Core Hosting Bundle is missing, or was installed before IISinstall the ASP.NET Core 10 Hosting Bundle, then run iisreset
HTTP Error 500.30 or 500.31the app failed while startingcheck the log and the Windows Application event log. Common causes: a syntax error in appsettings.json (a missing comma or quote, single backslashes in paths), or the app pool cannot write the log folder.
Bad Request - Invalid HostnameAllowedHosts does not contain the host name in the address baradd it to AllowedHosts (Configuration)
Service Unavailable (503)the app pool stopped, often after repeated start failuresfix the cause in the log, then start the app pool
a page that says the site is being updatedapp_offline.htm is still in the site folderdelete it (Updating)

A failed sign-in ends on the Sign-in failed page. It shows the error code and how to fix it. Microsoft’s full message is in the log (line Sign-in failed (<code>)).

CodeCauseFix
AADSTS50011the address in the browser is not a redirect URI of the app registrationadd https://<your-host>/signin-oidc exactly as people open the site, including an application path (Entra app registration)
AADSTS700054ID tokens are not enabledtick ID tokens under Authentication in the app registration
AADSTS700016the application is not foundEntraID:ClientId or EntraID:TenantId is wrong
AADSTS50194the registration accepts only its own tenant, but sign-in used the multi-tenant endpointset EntraID:TenantId to your tenant ID (or MsGraphCredentials:TenantId to the tenant GUID)
AADSTS65001consent is missingan administrator grants it under Enterprise applications > IntensiveReports > Permissions
AADSTS7000215, AADSTS7000222the client secret is wrong or expiredcreate a new secret (Operations); paste the secret’s Value, not its ID
IDX10214the token was issued for another application IDEntraID:ClientId must be exactly the application (client) ID
correlation, IDX21323the browser lost the sign-in cookie (sign-in took too long, was started on another address, or the app restarted meanwhile)close the tab and sign in again from the start page

Signed in, but the app refuses access: with ReaderRoles set, the user needs one of those app roles; this also applies to administrators (Sign-in and access). Users of other tenants are always refused.

Settings cannot be saved: only administrators can save settings marked Everyone (Global Administrator or the IR.Admin role, signed in). If an administrator gets Could not save, the app pool cannot write App_Data (Installation).

The box This report could not be loaded names the error from Microsoft. Usual causes:

Error mentionsCauseFix
403, Forbidden, Authorization_RequestDenied, insufficient privilegesa permission is missingthe report’s ? button lists the permissions it needs (all permissions). Run Grant-IrPermissions.ps1 again, with the switch the report needs if it is an optional permission. Exchange Online and SharePoint can need 30 minutes; then recycle the app pool.
a licence, not licensed, tenant does not haveyour tenant lacks the licencethe ? button names the licence. Without it, Microsoft has no data for the report.
429, throttled, too many requestsMicrosoft Graph throttlingpress Refresh later; if it happens often, choose a slower refresh pace (Data and cache)
a role, Global Reader, Compliance Administrator, Teams Administratora directory role is missingsee Entra app registration
  • It may be right. Many reports list problems; an empty list then means nothing was found. The report’s page in the report reference says when an empty result is the expected good outcome.
  • The data is switched off. The report then says Data switched off and names the data source. An administrator switches it on again under Settings > Data & cache (Fetch).
  • It is a scan. It stays empty until someone presses Run scan, and after every restart.
  • The data is still loading after a restart. The header shows Refreshing while data loads.
  • A licence is missing for data that Microsoft returns as an empty list instead of an error. Check the licence under the report’s ? button.

Exchange, SharePoint, Teams or Purview reports fail, Graph reports work

Section titled “Exchange, SharePoint, Teams or Purview reports fail, Graph reports work”

These reports read through PowerShell and sign in with the certificate. Open PowerShell Diagnostics and press Run probe: it shows the exact error.

CauseFix
the certificate is not uploaded to the app registration, or the thumbprint in appsettings.json is wrongcompare the thumbprint in the app registration, in certlm.msc and in MsGraphCredentials:CertificateThumbprint
the app pool cannot read the private keyrun New-IrCertificate.ps1 with the right -AppPoolIdentity, or grant Read in certlm.msc > Manage Private Keys
the certificate expiredrenew it
only Exchange and Purview say certificate not foundset the app pool’s Load User Profile to True
Get-PnP… or Connect-PnPOnline is not recognisedthe modules were installed for Windows PowerShell or for one user only. Run Install-IrModules.ps1 in PowerShell 7 as administrator.
MsGraphCredentials:TenantDomain or SparePointSite is wronguse <tenant>.onmicrosoft.com and https://<tenant>-admin.sharepoint.com
the Global Reader role was assigned less than 30 minutes agowait, then press Re-run warm-up (reconnect) in PowerShell Diagnostics or recycle the app pool

Exchange reports fail after a module update

Section titled “Exchange reports fail after a module update”

The app and the Exchange Online module share some Microsoft sign-in libraries in one process, and only one version of each can be loaded. If the module on the server is newer than the libraries IntensiveReports was built with, the Exchange connection fails, typically with a could not load file or assembly error in PowerShell Diagnostics.

Update the PowerShell modules only when a new version of IntensiveReports asks for it (Updating). If you updated already, install the previous module version for all users and remove the newer one:

Terminal window
Get-InstalledModule ExchangeOnlineManagement -AllVersions
Uninstall-Module ExchangeOnlineManagement -RequiredVersion <newer version>
Install-Module ExchangeOnlineManagement -RequiredVersion <previous version> -Scope AllUsers -Force

Then recycle the app pool.

Data disappears or reports are slow after a quiet period

Section titled “Data disappears or reports are slow after a quiet period”

IIS stopped the idle app pool, and the data in memory went with it. Set the pool to always running: .\setup\Set-IrIisAlwaysRunning.ps1 -SiteName <site> -Apply (Operations).

A PowerShell report or scan stops after a long time

Section titled “A PowerShell report or scan stops after a long time”

A PowerShell script is stopped after 20 minutes. For very large tenants, raise IntensiveReportsConfig:PowerShellTimeoutMinutes (up to 120) and restart the app.

StatusMeaningFix
404 on every addressthe API is switched offturn on Report API on Settings > API access
404 for one reportthe client has no access to the report’s area, the report is hidden for it, or the ID is wrongcheck the client’s access and Never show these reports
401the token is missing, wrong, expired or the client is disabledissue a New token, check Expires and Enabled
401 for a certificate clientthe token’s audience is not the site’s addressset IntensiveReportsConfig:Api:PublicUrl and use that address as audience
403the action is above the client’s access (refresh or scan with read access)raise the client’s access for that area
409the report’s data is switched off, or a scan was requested for a report that is not a scanswitch the data on, or use refresh
429too many requestswait for Retry-After; raise the limits in appsettings.json if a legitimate client needs more

Every call and refusal is in the audit log, App_Data\api-audit\<date>.jsonl.