Fix “Another site or list is still using this content type” Error in SharePoint Online

Problem: When trying to delete a content type from a list or site, I received the below error in the SharePoint Online site:
Another site or list is still using this content type. If you would still like to delete it, please remove the content type from all sites and lists and then try again.

Another site or list is still using this content type. If you would still like to delete it, please remove the content type from all sites and lists and then try again.

Solution:

Find the references where a particular content type is being used and remove the content type association from the list. (You have to delete the items of the particular content type or change the content type of the items to remove the content type association from the list). Also, remove the items from the 1st stage (End-user) Recycle bin and the 2nd stage (Administrator) recycle bins!

PowerShell to Find a Content Type Usage in SharePoint Online:

This PowerShell script scans and exports content type references within a site collection.

#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

Function Get-ContentTypeUsage()
{ 
    param
    (
        [Parameter(Mandatory=$true)] [string] $SiteURL,
        [Parameter(Mandatory=$true)] [string] $ContentTypeName,
        [Parameter(Mandatory=$true)] [string] $ReportFile        
    )

    Try {
        $Cred= Get-Credential
        $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
        Write-host "Processing Site:"$SiteURL
        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = $Credentials
    
        #Get the content type from web
        $ContentTypeColl = $Ctx.Web.ContentTypes
        $Ctx.Load($ContentTypeColl)
        $Ctx.ExecuteQuery()
        
        #Array to hold result
        $Results = @()

        #Get all lists and libraries from the site
        $Ctx.Load($ctx.Web.Lists)
        $Ctx.Load($Ctx.Web.Webs)
        $Ctx.ExecuteQuery()

        Foreach($List in $Ctx.Web.Lists)
        {
            $Ctx.Load($List.ContentTypes)
            $Ctx.ExecuteQuery()
       
            #Check if the content type exists in the list        
            $ContentType = $List.ContentTypes | Where {$_.Name -eq $ContentTypeName}
            If($ContentType -ne $Null)
            { 
                $Results += New-Object PSObject -Property @{
                'Site' = $SiteURL
                'List Name' = $List.Title
                'URL'= $SiteURL+$List.DefaultViewURL
                }
                Write-host "Found Content Type Reference at '$($List.Title)' in site '$SiteURL'" -f Green
            }
        }
        #Export Results to CSV
        $Results | Export-Csv $ReportFile -Append -NoTypeInformation

        #Process subsites - Call the function recursively
        If($Ctx.Web.Webs.Count -gt 0)
        {
            Foreach ($web in $Ctx.Web.Webs)
            {
                Get-ContentTypeUsage -SiteURL $web.Url -ContentTypeName $ContentTypeName -ReportFile $ReportFile
            }
        }
  }
    Catch {
        write-host -f Red "Error Deleting Content Type!" $_.Exception.Message
    }
}

#Set parameter values
$SiteURL="https://crescent.sharepoint.com/"
$ContentTypeName="Project Template"
$ReportFile="C:\Temp\ContentTypeRef.csv"

#Delete the Output report file if exists
if (Test-Path $ReportFile) { Remove-Item $ReportFile }

#Call the function
Get-ContentTypeUsage -SiteURL $SiteURL -ContentTypeName $ContentTypeName -ReportFile $ReportFile

Here is a similar solution for SharePoint on-premises: How to resolve Content Type in Use Error in SharePoint?

Salaudeen Rajack

Salaudeen Rajack - SharePoint Expert with Two decades of SharePoint Experience. Love to Share my knowledge and experience with the SharePoint community, through real-time articles!

One thought on “Fix “Another site or list is still using this content type” Error in SharePoint Online

  • I have just disvovered that I also had to delete the version history before emptying the 1st and 2nd stage recycle bins

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *