Forum Widgets
Latest Discussions
Repository structure and CI/CD pipeline for SPFx WebParts
I am currently developing SPFx WebParts for a single SharePoint site. In our development repository, I have: A shared SPFx library Six separate WebParts, each in its own solution, organized as follows: library webparts webpart1 webpart2 webpart3 ... At the moment, on Azure DevOps, everything is managed in a single repository. To build and deploy a WebPart, I check Git for changes, build the WebPart, and then deploy it. I am considering whether, for the CI/CD pipeline, it might be more efficient to adopt a separate repository for each WebPart, allowing independent pipelines for each solution. In this scenario, I have two main questions: Is it considered a best practice to separate WebParts into distinct repositories? How should the shared SPFx library be managed in this case? I assume it would need a separate repository, but I would like guidance on the best way to integrate it with the WebParts. Thank you for your support.rosamartinamilazzo25Sep 18, 2025Copper Contributor13Views0likes0CommentsHaving issues with SPFx isolation build lately
Hello We have a customer using an isolation version of our product and when we built a new version last week, it stopped working with below error. Unfortunately, once we install the new build, replacing with the older ones that used to work stopped working and showing the same error. "authorize:90 Unsafe attempt to initiate navigation for frame with origin 'https://xxxx.sharepoint.com' from frame with URL 'https://login.microsoftonline.com/..........'. The frame attempting navigation of the top-level window is sandboxed, but the flag of 'allow-top-navigation' or 'allow-top-navigation-by-user-activation' is not set" We would really appreciate how to handle these errors. Thanks VijayVijaydeepSep 02, 2025Copper Contributor16Views0likes0CommentsError 'Cannot get value for projected field...' when users without email were set to the field
SharePoint List Setup I have a simple list with a Person field Approvers which allows multiple selections. One of the list items has a user set to the Approvers but the said user does not have email configured. REST API used https://xxx.sharepoint.com/sites/xxx/_api/Web/Lists(guid'xxx')/items/?$filter=ID eq xxx&$select=*,Approvers%2FEMail&$expand=Approvers REST API response Error { "odata.error": { "code": "-2146232832, Microsoft.SharePoint.SPException", "message": { "lang": "en-US", "value": "Cannot get value for projected field Approvers_x005f_EMail." } } } Graph API used https://graph.microsoft.com/v1.0/sites/xxx/lists/xxx/items?$filter=startswith(fields/Title, 'xxx')&$expand=fields($select=Title,Approvers) Graph API response Success "Approvers": [ { "LookupId": 1, "LookupValue": "User A", "Email": "" }, { "LookupId": 2, "LookupValue": "User B", "Email": "" }, { "LookupId": 3, "LookupValue": "User C", "Email": "******@outlook.com" } ] Question Is there anyway we can tell the REST API to react the same way as Graph API, instead of failing, return the data as-is?IvanTiohAug 14, 2025Copper Contributor108Views0likes3CommentsSharePoint Online Public CDN CSS File Not Updating
We updated a CSS file that is loaded on our site via the SharePoint Online Public CDN, but the changes are still not reflecting. It has already been 24 hours since the update. Steps we’ve tried so far: Saved the file Replaced the file Checked out and checked in Renamed the file and reverted the name Cleared browser cache Performed a hard refresh Has anyone else experienced this issue? How long does it typically take for changes to appear? I’ve seen some posts mentioning it can take days.jmaranon24Aug 14, 2025Copper Contributor120Views0likes1CommentConnection was forcibly closed by TPC RST packet from Microsoft servers
We are experiencing intermittent but frequent connection terminations during communication with SharePoint Online via REST API. After several internal investigations, we were unable to identify any root cause on our end. We have observed unexpected connection resets originating from Microsoft servers, specifically during or after the TLS handshake. Packet trace including the TCP RST. This packet appears to be an unsolicited TCP RST sent from Microsoft side. 396 19.654862 SharePoint IP Client IP TLSv1.2 357 Application Data 397 19.655259 SharePoint IP Client IP TLSv1.2 1013 Application Data 398 19.655344 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 402] 399 19.655376 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 402] 400 19.655387 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 402] 401 19.655376 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 402] 402 19.655387 SharePoint IP Client IP TLSv1.2 1448 Application Data 403 19.655476 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 405] 404 19.655495 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 405] 405 19.656337 SharePoint IP Client IP TLSv1.2 1212 Application Data 406 19.656367 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 408] 407 19.656412 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 408] 408 19.656412 SharePoint IP Client IP TLSv1.2 1070 Application Data 409 19.657129 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 411] 410 19.657192 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 411] 411 19.657292 SharePoint IP Client IP TLSv1.2 992 Application Data 412 19.657325 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 414] 413 19.657435 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 [TCP PDU reassembled in 414] 414 19.657523 SharePoint IP Client IP TLSv1.2 992 Application Data 415 19.659729 SharePoint IP Client IP TCP 60 443 → Random Port [RST] Seq=... Win=0 Len=0 416 19.660127 SharePoint IP Client IP TCP 60 443 → Random Port [RST] Seq=... Win=0 Len=0 417 19.660216 SharePoint IP Client IP TCP 60 443 → Random Port [RST] Seq=... Win=0 Len=0 418 19.660317 SharePoint IP Client IP TCP 60 443 → Random Port [RST] Seq=... Win=0 Len=0 419 19.660318 SharePoint IP Client IP TCP 60 443 → Random Port [RST] Seq=... Win=0 Len=0 420 19.661139 SharePoint IP Client IP TCP 60 443 → Random Port [RST] Seq=... Win=0 Len=0 421 19.661235 SharePoint IP Client IP TCP 60 443 → Random Port [RST] Seq=... Win=0 Len=0 422 19.662135 SharePoint IP Client IP TCP 60 443 → Random Port [RST] Seq=... Win=0 Len=0 423 19.662212 SharePoint IP Client IP TCP 60 443 → Random Port [RST] Seq=... Win=0 Len=0 424 19.665417 Client IP SharePoint IP TCP 1514 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 425 19.766395 Client IP SharePoint IP TCP 1514 [TCP Retransmission] 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 426 20.367148 Client IP SharePoint IP TCP 1514 [TCP Retransmission] 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 427 21.167413 Client IP SharePoint IP TCP 1514 [TCP Retransmission] 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 428 21.179165 Client IP SharePoint IP TCP 1514 [TCP Spurious Retransmission] 443 → Random Port [ACK] Seq=... Ack=... Win=4194560 Len=1460 429 21.773431 Client IP SharePoint IP TCP 1514 443 [SYN, ECE, CWR] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM TLS Handshake Behavior: .NET-based applications on our server report the following exception: System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---] System.Net.Sockets.SocketException (10054): An existing connection was forcibly closed by the remote host. We have included packet traces showing: - Successful TCP and TLS handshakes - Encrypted application data sent by our client - Acknowledge packets from your server - Connection then abruptly closed by a TCP RST without any visible application-layer error Environment & Testing: - Operating System: Windows Server 2022 - Frameworks: .NET 6 / .NET 8 - Connectivity: REST API calls to SharePoint Online (no sync, no OneDrive, no hybrid setup), TLS1.2 used and set up based on Microsoft recommendations Observations: - Approximately 70% of API calls fail intermittently - Issue occurs across multiple SharePoint sites and folders - Affects all users (admin, regular users, etc.). - No firewall, hardware, or configuration changes have occurred on the affected server - Disabling security software had no impact - Temporary switch to IPv6 improved stability for ~24 hours before the issue returned - New development: - We moved some applications to a separate VPS — those are working correctly. - However, a similar issue has now started occurring on a completely different server hosted by a customer, indicating this may not be isolated to a single environment or IP. Is this expected behavior under specific policies (e.g., IP reputation, rate limiting, User-Agent filtering)? Could there be a misconfiguration or conditional access policy silently blocking some connections? Is this possibly related to throttling or regional backend issues? Thank you for any support in this case.ICOK-SeverinAug 04, 2025Copper Contributor114Views0likes1CommentSPFX 1.21.1 in monorepo - utility module could not be exported
I am trying to migrate multiple projects to monorepo. I need to migrate some common utilities functions in a common module. There is an export warning that the module has no exports, while it does has. Running npm run spfx1:build works fine. But when I do npm run spfx1:serve it throws a warning export 'DemoUtilities' (imported as 'DemoUtilities') was not found in 'utilities-library/utils' (module has no exports) Opening the a SharePoint page online, it errors with missing exports. Can you point me to possible solutions? Here is a very simple OOB SPFX solution structure: utilities-library - src -- utils.ts - index.ts - package.json - tsconfig.json spfx1 - config - sharepoint - src -- skipped for brevity - gulpfile.js - package.json - tsconfig.json package.json tsconfig.base.json Specifics for per files utilities-library -> package.json { "name": "utilities-library", "version": "1.0.0", "main": "lib/index.js", "types": "lib/index.d.ts", "scripts": { "start": "node index.js", "test": "echo \"test\"" }, "type": "module", "workspaces": [ "true" ], "devDependencies": { "typescript": "^5.3.5" } } utilities-library ->tsconfig.json { "compilerOptions": { "composite": true, "declaration": true, "outDir": "lib" }, "include": ["**/*.ts"] } utilities-library ->index.ts export { DemoUtilites } from './src/utils'; utilities-library -> utils.ts import { ISPFXContext, spfi, SPFx } from "@pnp/sp"; import "@pnp/sp/webs"; import "@pnp/sp/lists"; export const DemoUtilites = { checkListExists: async ( listTitle: string, context: ISPFXContext ): Promise<boolean> => { const sp = spfi().using(SPFx(context)); return new Promise<boolean>((resolve) => { sp.web.lists .getByTitle(listTitle)() .then(() => { resolve(true); }) .catch((error) => { if (!(error?.status === 404)) { console.log(`Error checking list ${listTitle}`, error); } resolve(false); }); }); } } spfx1 -> gulpfile.js 'use strict'; const build = require('@microsoft/sp-build-web'); const path = require("path"); build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); build.configureWebpack.mergeConfig({ additionalConfiguration: (generatedConfig) => { generatedConfig.resolve = generatedConfig.resolve || {}; generatedConfig.resolve.alias = { ...(generatedConfig.resolve.alias || {}), 'utilities-library': path.resolve(__dirname, '../utilities-library/lib'), 'utilities-library/utils': path.resolve(__dirname, '../utilities-library/lib/utils') }; return generatedConfig; } }); var getTasks = build.rig.getTasks; build.rig.getTasks = function () { var result = getTasks.call(build.rig); result.set('serve', result.get('serve-deprecated')); return result; }; build.initialize(require('gulp')); spfx1 -> package.json { ... "dependencies": { "@microsoft/decorators": "1.21.1", "@microsoft/sp-core-library": "1.21.1", "@microsoft/sp-dialog": "1.21.1", "@microsoft/sp-listview-extensibility": "1.21.1", "@pnp/sp": "^4.12.0", "utilities-library": "^1.0.0", "office-ui-fabric-react": "^7.204.1", "react": "17.0.1", "react-dom": "17.0.1", "tslib": "2.3.1" }, ... } spfx1 -> tsconfig.json { "extends": "../tsconfig.base.json", "compilerOptions": { "rootDir": "src", "outDir": "lib" }, "include": ["src/**/*.ts", "src/**/*.tsx"], "references": [ { "path": "../utilities-library" } ] } root -> package.json { "name": "monorepo-test", "workspaces": [ "spfx1", "utilities-library" ], "scripts": { "spfx1:build": "gulp build -f ./spfx1/gulpfile.js --workspace spfx1", "spfx1:clean": "gulp clean -f ./spfx1/gulpfile.js --workspace spfx1", "spfx1:serve": "gulp serve -f ./spfx1/gulpfile.js --workspace spfx1 --nobrowser", "spfx1:bundle": "gulp bundle -f ./spfx1/gulpfile.js --workspace spfx1", "spfx1:pkg": "gulp package-solution -f ./spfx1/gulpfile.js --workspace spfx1", "spfx1:prod": "gulp build -f ./spfx1/gulpfile.js --workspace spfx1 --ship & gulp bundle -f ./spfx1/gulpfile.js --workspace spfx1 --ship & gulp package-solution -f ./spfx1/gulpfile.js --workspace spfx1 --ship", "utilities-library:build": "tsc --project utilities-library/tsconfig.json", "utilities-library:watch": "npm run utilities-library:build -- --watch", "clean:node": "rm -rf **/node_modules" }, "devDependencies": { "npm-run-all": "^4.1.5" } } root -> tsconfig.base.json { "extends": "./node_modules/@microsoft/rush-stack-compiler-5.3/includes/tsconfig-web.json", "compilerOptions": { "target": "es5", "forceConsistentCasingInFileNames": true, "module": "esnext", "moduleResolution": "node", "jsx": "react", "declaration": true, "sourceMap": true, "experimentalDecorators": true, "skipLibCheck": true, "outDir": "lib", "inlineSources": false, "noImplicitAny": true, "rootDir": ".", "baseUrl": ".", // Important for path mapping "paths": { "utilities-library/*": [ "utilities-library/lib/*" ] }, "typeRoots": [ "./node_modules/@types", "./node_modules/@microsoft" ], "types": [ "webpack-env" ], "lib": [ "es5", "dom", "es2015.collection", "es2015.promise" ] }, "include": [ "src/**/*.ts", "src/**/*.tsx" ] }Kiril IlievJul 29, 2025Copper Contributor165Views0likes2CommentsGetting error when trying to get user access token in SPfx solution using MSAL
Referring https://github.com/microsoft/CopilotStudioSamples/tree/main/SharePointSSOComponent and tried to implement it. Getting error when trying to get user access token using MSAL. The Error is: Unsafe attempt to initiate navigation for frame with origin 'https://XXXX.sharepoint.com' from frame with URL 'https://login.microsoftonline.com/XXXXXXXX-595d-472c-8248-0dc58f852d61/oaut…04MDZhLTc4NTFlOGEzNWJjNSIsIm1ldGEiOnsiaW50ZXJhY3Rpb25UeXBlIjoic2lsZW50In19'. The frame attempting navigation of the top-level window is sandboxed, but the flag of 'allow-top-navigation' or 'allow-top-navigation-by-user-activation' is not set. Issue is intermittent and usually occurs when running on localKChawla1404Jul 08, 2025Copper Contributor116Views0likes1CommentAccessing endpoints published to Entra Application Proxy from SPFx
We have an on-premises web service (hosted in IIS) published through Entra Application Proxy. When attempting to access the published endpoints from a SharePoint (SPFx) web part, we encounter CORS errors (302 Found). Accessing these endpoints directly from a browser address bar works as expected. In IIS, the Access-Control-Allow-Origin response header is set to * (wildcard). We have also tried specifying a particular domain, but that did not resolve the issue. Pre-authentication is enabled in Entra Application Proxy. Has anyone successfully connected to endpoints behind Entra Application Proxy from an SPFx web part? Any insights or solutions would be greatly appreciated.jyamauchiJun 20, 2025Copper Contributor61Views0likes0CommentsSharePoint Online Threshold Limits – Critical Impact and Architectural Guidance Request
Dear Microsoft Support Team, We are the central IT service provider managing a productive SharePoint Online environment for one of our enterprise customers. As part of a migration project (merger), we encountered a significant issue related to the exceeding of Microsoft-recommended thresholds in SharePoint Online. The resulting impact disrupted critical business operations. We kindly request confirmation, technical explanation, and the most up-to-date Microsoft recommendations (including sources) regarding the following topics: Threshold Clarification What are the current Microsoft-recommended maximum limits for: Total number of files/folders in a document library Total number of files/folders within a single folder or path Maximum number of items to maintain functional permission management Maximum number of items that allow stable OneDrive synchronization Technical Impact Questions What are the consequences when the 100,000-item threshold is exceeded within a folder path, especially when changing access paths (e.g., department name changes)? What are the technical causes of the extended "re-synchronization" process triggered by path changes? Architectural Guidance How should a Site Collection or library be structured to ensure: Scalability for enterprise use Effective permission control even with over 1 million files Smooth OneDrive sync functionality Future-proofing against disruptive changes (e.g., metadata updates, path modifications) Known Thresholds / Internal Guidelines: Maximum per library: 30 million items (Source: Microsoft Docs) Permission management limit: 100,000 items (breaking inheritance not possible beyond this) OneDrive sync limit: 300,000 items (Source: Microsoft Docs) Help is needed: Recommendations on how to architect large-scale document libraries Best practices to avoid the aforementioned issues Clear indication of the thresholds that must not be exceeded in an enterprise-grade SPO environmentNava1989Jun 04, 2025Copper Contributor208Views1like1Comment
Resources
Tags
- developer1,244 Topics
- PnP648 Topics
- apis489 Topics
- Extensibility253 Topics
- Responsive128 Topics
- hybrid82 Topics
- SPFx70 Topics
- SharePoint Online64 Topics
- powershell23 Topics
- SharePoint Online Office 36515 Topics