Description
When using the Single List filter, NovaPoint constructs the FolderServerRelativeUrl using the library display name entered by the user rather than resolving the library's actual URL.
Library display names and URL paths are not always identical, causing the CAML query to target the wrong path and fail.
Example
- Site: https://[tenant-redacted].sharepoint.com/sites/[site-redacted]
- Display name entered: "Project Documents"
- Actual library URL: /sites/[site-redacted]/ProjectDocuments
- URL constructed by NovaPoint: /sites/[site-redacted]/Project Documents
Steps to Reproduce
- Open Files and Items Report (ItemReport)
- Set Sites filter > Single Site URL
- Set Library filter > Single List > enter display name "Project Documents"
- Run solution
Expected Behaviour
NovaPoint resolves the library's actual RootFolder.ServerRelativeUrl
using the display name as a lookup key, then uses the resolved URL in the CAML query.
Actual Behaviour
The display name is used directly as the URL path, which fails whenever the display name differs from the URL (spaces, special characters,
libraries that have been renamed after creation, etc.).
This causes:
Exception: Value does not fall within the expected range. at SPOListItemCSOM.GetBatchAsync() at SPOTenantItemsCSOM.GetAsync()
Suggested Fix - two options
Option 1 (UI change): Update the input label from "Library/List name" to "Library/List URL" and document that users must enter the URL path (e.g. "ProjectDocuments") not the display name (e.g. "Project Documents").
Option 2 : Resolve the display name to the actual
RootFolder.ServerRelativeUrl via CSOM before building the CAML query, so users can continue entering the display name as shown in SharePoint.
Secondary Issue
The export crashes on malformed results and NovaPoint logs "COMPLETED" despite the failure - this is misleading:
[ItemReport] "Exception: Exception has been thrown by the target of an invocation." at DbHandlerSolution.ExportAllReports() [LoggerSolution] "COMPLETED: Solution has finished correctly!"
Environment
- NovaPoint version: v0.15.1
- Auth method: Delegated (interactive)
- Windows: Windows 11
Description
When using the Single List filter, NovaPoint constructs the FolderServerRelativeUrl using the library display name entered by the user rather than resolving the library's actual URL.
Library display names and URL paths are not always identical, causing the CAML query to target the wrong path and fail.
Example
Steps to Reproduce
Expected Behaviour
NovaPoint resolves the library's actual RootFolder.ServerRelativeUrl
using the display name as a lookup key, then uses the resolved URL in the CAML query.
Actual Behaviour
The display name is used directly as the URL path, which fails whenever the display name differs from the URL (spaces, special characters,
libraries that have been renamed after creation, etc.).
This causes:
Exception: Value does not fall within the expected range. at SPOListItemCSOM.GetBatchAsync() at SPOTenantItemsCSOM.GetAsync()
Suggested Fix - two options
Option 1 (UI change): Update the input label from "Library/List name" to "Library/List URL" and document that users must enter the URL path (e.g. "ProjectDocuments") not the display name (e.g. "Project Documents").
Option 2 : Resolve the display name to the actual
RootFolder.ServerRelativeUrl via CSOM before building the CAML query, so users can continue entering the display name as shown in SharePoint.
Secondary Issue
The export crashes on malformed results and NovaPoint logs "COMPLETED" despite the failure - this is misleading:
[ItemReport] "Exception: Exception has been thrown by the target of an invocation." at DbHandlerSolution.ExportAllReports() [LoggerSolution] "COMPLETED: Solution has finished correctly!"
Environment