background-shape
feature-image

Jekyll and Hyde

I ran into a SharePoint Online issue right before the holiday break that I’m sure is responsible for the emergence of a few new gray hairs on my head. I had a custom SharePoint list (which was using the Modern UI), that had been functioning perfectly fine for months, all of a sudden begin forcing the SharePoint Classic UI on its list forms.

NewForm, EditForm and DisForm were all rendering in the classic UI. It had been a while since I was forced to use the classic user interface… and boy was it jarring. On top of that, other users were relying on the “Comments” capability that is only available via the Modern UI.

Microsoft provides some documentation on features that automatically switch a list form to the classic experience within SharePoint Online (so look here first if you are running into issues), but none of these seemed to be the cause of my headaches.

I tried:

  • Removing all JSON formatting from my columns and views.
  • Leveraging PowerShell to identify the ListExperience settings
  • Leveraging PowerShell to get a detailed rundown of the list schema to ensure there were no hidden fields.
  • Removing every single unique permission on the list items (that were a product of “share” links). My thought here was that I had seen references to “Limited Access” permissions causing this type of issue.
  • Creating a new list based on this existing list as a template (everything worked great!)
  • And going down a bunch of other rabbit holes

The fact that a brand new list didn’t exhibit the same behavior was really interesting. And if there weren’t already hundreds of list items in the source list, along with a lot of Power Automate Flows already in place, I would have just migrated the content and called it a day. But that really wasn’t an option.

The Culprit: Power Apps

In a slightly last-ditch effort, I decided to try to override the out-of-the-box form by creating a Power Apps form. My thought was that if I created a custom form, published it and then “reverted back” to the stock, SharePoint Online form, that maybe that would shock SharePoint into resolving the issue.

Turns out, I wasn’t that far off with this idea. However, I think I may have stumbled upon a bug… and one that I cannot reproduce yet.

I went from List Settings > General Settings > Form settings. From there, instead of using the default option to “Use the default SharePoint form” I selected the hyperlink to “Customize in PowerApps” because I did not see an option to view any existing customized forms.

The oddity is that after I selected the “Customize in PowerApps” link, I was presented with a draft form that was created by another user in the organization that was never published. I closed out of that window and suddenly saw a new option to not only “Modify form in PowerApps”, but - more importantly - an option to “Delete custom form”.

Delete custom form and use default SharePoint form

By selecting the “Delete custom form” option and ensuring the “Use [the] default SharePoint form” was selected, the list forms began rendering in the Modern UI as expected.

Phew.

The bug as best as I can explain it: While I was a Site Collection Administrator and had complete control over every facet of the site, the Form Settings page wasn’t presenting to me the fact that a customized form (albeit in draft form) existed in Power Apps. It was only when I selected the option to create a customized form that the draft was presented to me and I was able to delete it (which resolved my issue).

No Thanks to Microsoft Support

By the way - this resolution was in no way thanks to Microsoft. After a couple of hours I was completely lost and didn’t know where to turn. I got lucky in finding this resolution, and I would have hoped that Microsoft Support (albeit not Premier Support) would have provided at least the most basic SharePoint troubleshooting support.

After an initial call about an hour after I submitted my first ticket (yay to the quick call!) and confirmation that my info would be relayed to “advanced support”, Support went radio silent. I even went so far to submit another ticket to see if I could get traction with another engineer. After confirming my call back number and times that worked for me, the engineer would state that they tried calling - when they clearly didn’t. Other times when I would start an availability window of an hour or two, the call would come but at a time when I couldn’t field it.

I had two tickets open for over 6 weeks with zero assistance for the most part. It was rough.