Office 365 – SharePoint Online – Running out of resources, can’t create new site collections

For a long time Office 365 as shown thee overviews:


When creating a new site collection the Server Resource Quote seems to be ignored.


But not anymore.


When adding 300 resources while there are only 200 available you will now get the message

Please enter an integer between 0 and 200.

So what happens when you use all your resources?

First of all you now get a warning:


Next to the red bar which has existed for quite a while. you will now also get the following warning:

You are approaching the maximum resource usage limit.


In my case I initially exceeded the limit as These checks haven’t been in place long yet. Resource settings used to be simply ignored.


Once you have hit the limit you will need to purchase more resources. I haven’t found a negative affect for selecting less resources when creating a new team sites, but I’ve got the feeling that that may be on its way.






Office 365 Groups – An overview of the main features

With all the changes  happening in Office 365 it is quite difficult to keep up  with it all. Recently we have seen many updates to the new look of SharePoint sites. This includes:

  • Site contents look and feel
  • New list and library look and feel
  • New SharePoint home

The one thing I hadn’t looked into very much is the new Office 365 groups.

Office 365 Groups

Office 365 groups give you a way to bundle collaboration related to a subject, client or anything else. So it is a bit like a time site. But then it is a lot more than just a team site. In this post I’m going through the details.

Creating a new group

In outlook 2016 you can now see an overview of all the groups that you are part of. New groups can by created by right clicking on the Groups heading.


After the form below is completed with a name of the group and privacy settings the group is ready to be created.


The group will then also be connected to an email address that will be created in the format

Private groups vs public groups

There are two types of groups. Public ones and private ones.


Next to the obvious difference, one very important difference between these to group types is that data from public groups  is visible within SharePoint search.

Accessing groups

Once your group has been created  you can access the groups through:

  1. Outlook
  2. The group site at
  3. Web version of outlook.

In outlook you can follow conversations and reply to conversation. All members of the group may receive a copy of the conversation.


Within the ribon of outlook it is now possible to create a new conversations, to configure your group settings and check the group calendar, documents and notes.


Within the group site documents, conversations, notes are all collected and presented similar to the traditional team sites.



Deleting groups

The delete option has been hidden away a little bit.Click on the site icon within the web version of outlook ( this is the same place where you could change your logo for the site). Then you will find the Delete group option in the settings dialog that appear at the right hand site. After a couple of confirmation screens you will have deleted the group site.







Site Settings

Once the group has been created many SharePoint developers may now want to know what can and what can’t be done.

I quick glance at the site settings shows some of the limitations.


So there are still options available to adjust the left hand navigation of the site, but there is no global navigation possible.

There are still site collection columns and content types but no other galleries that we are used to in traditional site collection templates. Additionally it is possible to use a Content types hub. Within the site collection  administration section Content type Publishing can be enabled.

Additionally there are a lot of options available for search, however there doesn’t seem to be an option available to make search results from a private Office 365 group available on a SharePoint site. For public groups data is included in search.

I also noted that the Portal site connection option still exists. Although when configured this seems to be ignored. The better option for this seems to be either the quick launch or the Quick links on the groups site landing page.


Microsoft seems to be developing a lot of new templates all based on team sites and these team sites seem to be less and less connected to a portal/intranet. Each site seems to get its own identity. It will make it harder and harder for end users to still find the single place for information.

A user will always have to consider where to store their documents. OneDrive, Office 365 groups or SharePoint sites.

So far I have not found a way to pull Office 365 group data from private groups into SharePoint using SharePoint’s search or Delve. So it looks like we’re loosing the traditional intranets a bit. However for public groups data is included in SharePoint’s search results. So when yo create your groups be careful in selection private or public.


Office 365 – How do debug PnP PowerShell commands

Further to my one of my previous posts How to debug PnP Provisioning Engine in which I explained how to use the Set-SPOTraceLog Cmdlet to get more information from your PnP PowerShell commands. In this article I’m going to describe how to debug the PowerShell source code itself.

When the Set-SPOTraceLog got me to the point where a certain list was causing problems, I now want to know how to fix the actual issues. This quite often requires more detail than just knowing which list, content type of column is causing a command to fail.

The PnP PowerShell is a layer calling the PnP Site Core libraries. The core libraries are doing the actual work. So most likely when you feel the need to debug the PowerShell commands you will find that you actually want to debug the core library.

Setting up Visual Studio

First of all I’m assuming that you have installed the  PnP PowerShell by running the .msi files in the releases location of the PnP github. You will need to uninstall these as the Visual Studio version of the same files will located the command files in a different place.


Cloning PnP Repositories

We will now use the Clone option. You will now need to supply the url of the projects on Github.clone

You could use use however it would be better to use your own fork. Your fork is like a branch that is for your use only.

In my case I’ve set up my branch at:


Once the above form is complete click on Clone. This could take a while …


Once the PowerShell code is there you will see the repository there in Visual Studio.





Now it is time to repeat the same for two other repositories.

Again my forks are:

You should of course create your own forks from the OfficeDev/PnP-Sites-Core and OfficeDev/PnP-Provisioning-Schema projects.

Once all repositories have been cloned you should have something like this (you don’t need the github repository):


Ok, so now I’ve got the latest code from my forks. But the code in the OfficeDev repositories has been updated. How do I sync this?

Synchronizing repositories

In Visual Studio you might see a warning:


If you get the warning then you haven’t installed Git yet. You can either click on the install link or download it from

Once you have installed Git, you will be able to synchronize the repositories.

First I’m going to open the Provisioning Scheme project.


I can now see that my last updates were done at 08/01/2016 by Paolo Pialorsi


Now I want to synchronize with the latest code where more recent updates were done.

I will need to go to the git bash (this is installed as part of git). First I changed to the folder containing my repository.


Then the git-remote -v shows my my repositories.

I want to syn with the Office dev fork not my fork! Why does Git not know about the parent fork?

Now I run:

git remote add OfficeDev

then again I run the git-remote -v


OK, so now I’ve got git to know about OfficeDev, then I tried in Visual Studio to merge branches but Visual Stuido doesn’t seem to pick this up. It only knows about origin.

So back to Bash


I ran

git fetch OfficeDev

Alternatively within Visual Studio you can also fetch the code from officeDev:


and now Visual Studio knows about this branch. I select the Merge from option









Now I had to select which branch to merge from and I selected OfficeDev/master which is the master branch. So this code matches the latest release code. When needed you might want to select development branches here.  In the other two projects (PowerShell and Core) there is a clear branch called dev.


Then finally click on Merge and the master branch of my code should now be updated with the latest changes.

When I now check version history of my source code I can see the latest updates.


So now I go back to my fork on github and I’m still getting a 36 commits behind.


So I’ve got my latest code locally but I’ve not checked that into my fork in github.

In Visual Studio, you can see the outgoing commits in the Team Explorer -> Synchronization.


Click on Sync and your fork will be updated.

Now repeat this for the Site Core and PowerShell projects.

At last we’ve got the latest code both locally and in Github. Although technically we probably didn’t need to syn with Github to do the debugging it is a good idea to sync your personal fork every now and then.

Debug PnP PowerShell.

So now finally I get to the point of debugging PnP PowerShell


Open the project OfficeDevPnP.Core in Visual Studio and build the OfficeDevPnP.Core project.

Open the project OfficeDevPnP.PowerShell in Visual Studio.

Then Build the following projects:

  • SharePointPnP.PowerShell.CmdletHelpAttributes.csproj
  • SharePointPnP.PowerShell.CmdletHelpGenerator.csproj
  • SharePointPnP.PowerShell.Commands.csproj


This last  build should copy the powershell commands to your profile:


Now we are ready to get started:

Open PowerShell ISE, or the non ISE version of PowerShell and check that the PowerShell commands are available.


Within your PowerShell window run the following commands:

Connect-SPOnline -Url

Get-SPOProvisioningTemplate -Out c:\temp\templates.pnp


No open the pnp sites core project in Visual Studio and set a break point in the GetRemoteTemplate in the SiteToTemplateConversion.cs

This can be found in:  C:\Github\PnP-Sites-Core\Core\OfficeDevPnP.Core\Framework\Provisioning\ObjectHandlers\SiteToTemplateConversion.cs


No attach the debugger to your PowerShell ISE:


Select the powershell_ise process and click on Attachattach2

Note that in Visual Studio your break point now shows the red dot.


rerun the Get-SPOProvisioningTemplate command in PowerShell and your breakpoints will be picked up and you can step through the code.

If you find that Visual Studio doesn’t pick up the thread then you might have to open up some ports on your firewall. For more information see:

Alternatively you can also use the PowerShell Interactive Window available in Visual Studio. Just attach the process to the PowershellProcessHostConsole.exe instead of powershell_ise.exe








Office 365 – Customizations too risky? Go for more development!

On the techcommunity site a question was asked about how to reduce the risk of updates breaking your Office 365 SharePoint solutions

In the past too many times SharePoint has been broken by updates deployed by Microsoft. In recent months the new interface broken the global navigation leaving users with unable SharePoint solutions.

So what should SharePoint developers do in Office 365 to avoid systems breaking?

Try to implement SharePoint without any branding. Just use the theme options available.


Then when you get to the point of developing the solutions within SharePoint develop apps/Add-in instead of pages with web parts.

Add-ins are separate from SharePoint and use CSOM to talk to SharePoint and therefore SharePoint upgrades will not cause any issues.

If you would like any help developing your apps/add-ins for SharePoint contact me at