As I'm sure many of you are aware, the SharePoint team has been rolling out what they're calling the 'Modern' SharePoint experience, and I wanted to share a recent (and mildly painful) experience I've had. The most recent update (at least the most recent that I've noticed) to my client's tenant introduced the new 'modern' List UI.
On my client's tenant, I have a dozen or so Nintex workflows running on a particular site. Many of these workflows contain at least one action that results in a new URL being generated, mainly through the use of the 'Office 365 Create List Item' action. Once the new list item has been created, the Nintex action conveniently stores the URL in a variable that I can then use for other purposes.
This is where the issues begin. The URL that the workflow stores will look something like...
https://<<TenantName>>.sharepoint.com/site/foo/lists/bar/DispForm.aspx?id=1
The issue is, though, that the 'modern' SharePoint UI treats querystring parameters as case sensitive, and it's looking for the 'id' querystring to be 'ID'. If you try to use the url, you'll end up staring at a mostly blank page. That's obviously a problem when your workflow ends up sending out that link.
If your tenant is already using the modern UI, you can test this yourself. Just go to any list item item, right click on it and choose 'Get a link'. Copy the URL from the text box onto your clipboard, and then paste it in the browser's URL bar. Before pressing enter, you'll have to change the querystring to lowercase. After doing that and pressing enter, you'll see the 'blank' screen I mentioned earlier.
Fortunately, this is pretty simple to defend against (provided you know the querystring) using the Regex action and replacing 'id=' with 'ID='.
Hopefully this helps someone else out there.
Will Holland