Open JLRishe opened 2 weeks ago
I am seeing the same thing with a Command Set Extension that was developed with SPFX 1.13.1. This is a project that was working fine for years. But with the new SharePoint List UI that the tenant recently got, the buttons are no longer visible.
I tried to troubleshoot by creating a new Command Set HelloWorld Extension using the MS Learn example and spfx 1.13.1: https://learn.microsoft.com/en-us/sharepoint/dev/spfx/extensions/get-started/building-simple-cmdset-with-dialog-api
When I try to gulp serve or gulp bundle, this error is thrown:
AppData\Roaming\nvm\v14.15.4\node_modules\gulp-cli\bin\gulp.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
at Function.Module._load (internal/modules/cjs/loader.js:725:27)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.
If I update to spfx 1.19.0 and npm 18.19.1 to create the MS Learn Example, I am able to package and deploy without an issue. The Command Set buttons appear as expected.
Can someone run a similar test with spfx 1.13.1?
We are seeing the same issue since the forced rollout of the new Lists experience. However, even Ctrl + F5 does not consistently allow the Command Sets to load, only some of multiple tries succeed.
Same as your description we're seeing that other extensions, deployed in the same app package, are loading successfully. Even initialization logs of Command Set extensions do not show up in the console at all.
Really hope there will be a quick fix/rollback for this. It's very frustrating there's nothing we can do to rollback or fix the issue, especially since it's clear from earlier issues that there have been many lingering issues with the new Lists experience.
I see the same behavior where the Command Set Extension does not load until you do a hard refresh.
Turning off Sync under Microsoft Lists (Waffle icon in top left corner > Lists > Hover over the list and click ... > Turn off Sync) fixes the issue, but from what I can see this setting is personal and there is no method to turn this off on a list for all users.
It doesn't seem to be the same setting that you can find in List settings > Advanced settings > Offline Client Availability > Allow items from this list to be downloaded to offline clients. From what I can see, turning off this setting does not make any difference.
Please fix!
Alexander
Thanks folks. We are aware of and working on an issue where command sets don't load when a list is syncing. As mentioned in this thread, the workaround for now is to stop syncing on the list.
Can someone provide more information on this workaround? I don't see the ability to turn off syncing as described for MS Lists.
We are using SharePoint Online. Both lists have "Allow items from this list to be downloaded to offline clients?" set to "No" which has made no difference on our end. Hard Refresh (Ctrl + F5) is also not working to get the Command Sets to display.
While it is great that there is a workaround that is working for some people, it does not appear to be working for all. It is not working on my client's tenant.
Please test with a Command Set created with SPFX 1.13.1
If you click the Waffle icon (the 9 dots icon) in the top left corner of your SharePoint site you should see a "Lists" icon. Click it and you should see your list under "Recent lists". Hover over the list, click the ... icon and click "Stop syncing".
Alexander
@SPJS I did try to follow your prior instructions. I'm just not seeing it on either site I am looking at:
@SPJS I did try to follow your prior instructions. I'm just not seeing it on either site I am looking at:
Same here. I dont see the option to "Stop syncing".
Thanks folks. We are aware of and working on an issue where command sets don't load when a list is syncing. As mentioned in this thread, the workaround for now is to stop syncing on the list.
Workaround is not working for everyone. Please fix!
@SPJS I did try to follow your prior instructions. I'm just not seeing it on either site I am looking at:
Same here; 'Stop Syncing" is available for some lists, but for the lists where we have CommandSets deployed, this option is not available.
It doesn't seem to be the same setting that you can find in List settings > Advanced settings > Offline Client Availability > Allow items from this list to be downloaded to offline clients. From what I can see, turning off this setting does not make any difference.
The value of this setting also does not impact the issue for us. I have checked sites where this was already on 'Off' for a longer time, but no luck. Sites with the setting "On" in many cases still don't show the Stop Syncing. All of the sites do not consistently load CommandSets (Ctrl+F5 sometimes causes it to render, still not consistently).
Seems to me like it's not necessarily related to the Syncing.
@gerkevgarderen there is another issue reported in a different thread where certain deprecated API's are not currently supported in the new UI, so you might be seeing that.
@gerkevgarderen there is another issue reported in a different thread where certain deprecated API's are not currently supported in the new UI, so you might be seeing that.
@reedpamsft - Do you have any updates on the fix? The workaround doesn't seem to work on my end,
@Marker4 @keraaj1980 @gerkevgarderen I found an older article (from 2022 - link) mentioning that different “complex” field types like lookups or managed metadata will stop syncing of that list. Microsoft has most likely changed the functionality since that article, but I assume it might be something like that preventing you from finding the “stop syncing” option.
Alexander
@Marker4 @keraaj1980 @gerkevgarderen I found an older article (from 2022 - link) mentioning that different “complex” field types like lookups or managed metadata will stop syncing of that list. Microsoft has most likely changed the functionality since that article, but I assume it might be something like that preventing you from finding the “stop syncing” option.
Alexander
Thanks for sharing the link, @SPJS!
I don't have a managed metadata column or a lookup column on one of the lists and I still don't see the option to "stop sync" option.
@reedpamsft - Do you have any updates?
@Marker4 @keraaj1980 @gerkevgarderen I found an older article (from 2022 - link) mentioning that different “complex” field types like lookups or managed metadata will stop syncing of that list. Microsoft has most likely changed the functionality since that article, but I assume it might be something like that preventing you from finding the “stop syncing” option.
Alexander
Just to double check this, I created a new blank list in SharePoint with just a Title field. No "Stop Sync"
@gerkevgarderen there is another issue reported in a different thread where certain deprecated API's are not currently supported in the new UI, so you might be seeing that.
@reedpamsft Thanks for the reply! The deprecated APIs is about #9898 for example right? We have deployed fixes for the deprecated API, which works well in development. However, this only helps if the extension is being loaded. The issue now is that in many cases it doesn't load the CommandSet extensions at all, while other types of extensions deployed in the same package function fine. Sometimes it works after Ctrl + F5, but even that works half of the time at best.
This might be due to syncing, but as mentioned above, we do not have the option to Stop Syncing for our affected lists. Possibly related to what @SPJS found (thanks for that!):
@Marker4 @keraaj1980 @gerkevgarderen I found an older article (from 2022 - link) mentioning that different “complex” field types like lookups or managed metadata will stop syncing of that list. Microsoft has most likely changed the functionality since that article, but I assume it might be something like that preventing you from finding the “stop syncing” option.
Alexander
Not sure if they rolled back the update? The list view has reverted back to the old look and the command set buttons have started appearing now.
Not sure if they rolled back the update? The list view has reverted back to the old look and the command set buttons have started appearing now.
I just did a hard refresh/clear cache and I am seeing the same thing in both lists with an issue. The old UI is back with the Views as a dropdown instead of tabs. The Command Set buttons are also back.
@gerkevgarderen @keraaj1980 @Marker4 yes, we rolled back the new UI based on the two issues being experienced (no command customizers when a list is syncing, and lack of support for the deprecated onListViewUpdated event).
@reedpamsft: is there any release-note on the deprecation of onListViewUpdated
? What I noticed is, that in commandbar-extensions the IListViewCommandSetExecuteEventParameters
has a property selectedRows
which was undefined
in the new modern UI experience. In issue 9514 there was a proposed workaround - is this the official recommended future solution to use this.context.listView.selectedRows
instead of event.selectedRows
?
This property also exists in IListViewCommandSetListViewUpdatedParameters
which is the parameter for the forementioned onListViewUpdated
method - is here also this.context.listView.selectedRows
proposed solution?
@reedpamsft and @henningeiben - just to follow up on this also from my side.
I don't think the deprecated code (onListViewUpdated
) was never communicated externally, which seems to now cause challenges worldwide, given the millions of users for these extensions. Let's align on this internally @reedpamsft - so that we can work on the plan here. Typically any deprecation which would cause customer and partner code to break - have been communicated clearly with minimum 12 months heads up. This is required to avoid any breaking changes for deployed extensibility worldwide.
We'll work on a clear messaging this internally at Microsoft - Let's continue internal alignment on this @reedpamsft using internal channels and update the ecosystem as we have clear plan going forward. Thanks for jumping in here 👏
for the specific issues - the new UI changes have been rolled back as mentioned in the discussion.
@VesaJuvonen : I don't want to be a nitpicker, but the update did not only affected the onListViewUpdated
method of SPFx extensions, but also the onExecute
methode, which receives a parameter of type IListViewCommandSetExecuteEventParameters
. This type has a property named selectedRows
, which was undefined
in the new modern UI ... either this was not intended or this needs to be migrated as well.
Can you confirm this?
@henningeiben - no worries on the keeping us honest and you are 100% correct. All of those would be breaking changes for the public codebase. We will revisit this change and messaging internally in Microsoft. Right now the change has been reverted and you should be back to the normal situation which has worked for years. We will work alignment internally.
What I experience today is: List are in old layout if our App is on the site and they are in new layout if I delete the app. This is according to what I found at: https://app.cloudscout.one/evergreen-item/mc600726/
Users in affected tenants will see Lists feature updates as described in this blog post. These improvements will reach all Lists, except those that have been configured with the following features: SharePoint Framework extensions PowerApps forms Approvals The Playlist template Lists that are using these features will not receive the new user experience with this feature rollout. Future rollouts will bring support for Lists that are using these features.
@reedpamsft to add to your list of things that did not work in the new UI, I noticed that after implementing the workaround, the commands showed up only in the command bar and not in the context menu, as pointed out in here: https://github.com/SharePoint/sp-dev-docs/issues/9905
And thanks for reverting back to the old UI!
@svkcode thanks! That is on the list.
@buettiB right. We had been rolling out the new UI for lists with command customizers, but given the scope of the issues reported here we suspended that rollout. Since the issue was only with command customizers, lists without command customizers should continue to see the new UI.
I'm still experiencing this issue even after the rollback. Have to press ctrl+F5 each time I want to see the list customizer. Some users report ctrl+F5 doesn't help anymore.
@AKCprcrn are you seeing the new UI (with views in tabs across the top) or the old one (with the views as a dropdown)?
@reedpamsft just for your info, last week (thursday) we had all users get the new version of the list, but now with our custom buttons being loading. We had the issue that we were using event.selectedrow so the selected buttons didn't show up. But the other buttons were showing up and working. This was rather unexpected and strange to suddenly get the new UI. CTRL+F5 and the fix in regards with adding stuff to the end of the URL didn't work anymore to get it back to the old version. Today we are all back into the old UI again. So my guess is there was a hickup last thursday.
Thanks for confirming, @JonEOffice . We did indeed start rollout of support for command customizers in the new UI, but halted once it became clear that there was a large class of customizers which needed a particular event and data object which the new UI missed.
@AKCprcrn are you seeing the new UI (with views in tabs across the top) or the old one (with the views as a dropdown)?
No, it's an old UI, with views in a dropdown at the right top. When its failing to load, I'm getting these and similar messages in the console output:
All Entries.aspx:59 A preload for '***-command-set_9fc6d66485a74ded547e.js' is found, but is not used because the request credentials mode does not match. Consider taking a look at crossorigin attribute.
All Entries.aspx:59 A preload for '***/ControlStrings_en-us_b4cd8c7b74220c708c8044df7f813da4.js' is found, but is not used due to an unknown reason.
Access to fetch at '***/ControlStrings_en-us_b4cd8c7b74220c708c8044df7f813da4.js' from origin '***' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
The FetchEvent for "***/ControlStrings_en-us_b4cd8c7b74220c708c8044df7f813da4.js" resulted in a network error response: the promise was rejected.
I'm seeing the "Old UI" on a list, but when refreshing the page the command set buttons in the banner disappears - still showing the Old UI and the command set does not load. If I do a hard refresh (Ctrl + Shift + r) it reappears.
If I disable sync (Waffle icon in the top left corner > Lists > Hover over the list in recent lists > Click ... > Stop sync) it works every time and does not disappear on reload of the page.
Checking /_vti_pvt/service.cnf shows this version: vti_encoding:SR|utf8-nl vti_extenderversion:SR|16.0.0.25221
When the command set does not load I see this in the developer console in Chrome:
Alexander
@SPJS thanks for letting me know. For now, I think you'll need to turn off sync. The sync team is working on a solution for this issue.
@AKCprcrn thanks for the details. This seems like a new issue.
Target SharePoint environment
SharePoint Online
What SharePoint development model, framework, SDK or API is this about?
💥 SharePoint Framework
Developer environment
None
What browser(s) / client(s) have you tested
Additional environment details
Describe the bug / error
I am the maintainer of a SPFx package that is used in a few dozen customer tenants and contains a List View Command Set extension, a Field Customizer extension, and a web part.
Two days ago, one of my customers who has been using this package for about this year reported that the List View Command Set button had suddenly stopped displaying on multiple list pages (possibly all of the list pages where it is in use).
I have met with him to troubleshoot and observed the following:
(Service Worker)
What can I do to troubleshoot or remedy this issue?
Console when Command Set fails to load
Console when Command Set loads
Network requests when Command Set fails to load
Network request when Command Set loads
Steps to reproduce
Currently I only know this to reproduce in my customer's environment.
Expected behavior
The Command Set button should display.