0

I am making a REST request to SharePoint for breaking the role inheritance for a folder.

It's working fine when a folder does not have any special character in it's name.

But when I add special charter(s) to a folder name, my request for breakroleinheritance is failing and I am getting below error from the web service.

"error":{"code":"-1, Microsoft.SharePoint.Client.ResourceNotFoundException","message":{"lang":"en-US","value":"Cannot find resource for the request SP.RequestContext.current/web/GetFolderByServerRelativeUrl('/foldertop/subfolder/2020/Oklahoma/20-4152 test permission for parts2020%23%40%26')/ListItemAllFields/."}}}

For example: 20-4152 test permission for parts2020#@& this is my folder name and after doing URL ending it becomes 20-4152%20test%20permission%20for%20parts2020%23%40%26.

Below is the full endpoint along with relative URL for my folder, Please know that if I remove the special characters #@& then same request is working fine.

https://mysharepoint.sharepoint.com/_api/web/GetFolderByServerRelativeUrl('/foldertop/subfolder/2020/Oklahoma/20-4152%20test%20permission%20for%20 parts2020%23%40%26')/ListItemAllFields/breakroleinheritance(true)

Does this mean that the SharePoint REST API request does not support special characters?

1

1 Answer 1

1

Microsoft has made some changes to support some of the old special characters that used to be restricted.

Supporting % and # in files and folders with the ResourcePath API

So instead of using GetFolderByServerRelativeUrl you need to use GetFolderByServerRelativePath.

This question/answer is about the same problem (the hash #): SharePoint Online folder with "#" not found

6
  • I just tried bt removing slash before library name, and did encoding as you have mentioned which makes the endpoint like this. endpoint=>midwestmach.sharepoint.com/_api/web/… But I am still getting the same error Commented Feb 10, 2020 at 9:04
  • here is the error : Cannot find resource for the request SP.RequestContext.current/web/GetFolderByServerRelativeUrl('topfolder/subfolder/2020/Oklahoma/20-4152 test permission for parts2020#@&')/ListItemAllFields/. Commented Feb 10, 2020 at 9:05
  • Did you encode the rest of the folder path and use the variable instead in your code? Commented Feb 10, 2020 at 9:08
  • Yes I did and it makes my url look like this => mysharepoint.sharepoint.com/_api/web/… Commented Feb 10, 2020 at 9:10
  • My misstake, according to MS there should be a slash in the start. however i think you should write it as /breakroleinheritance(copyRoleAssignments=true, clearSubscopes=true) and not just (true). Commented Feb 10, 2020 at 9:16

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.