Making Hidden Files With No Checked-In Version Visible in a SharePoint Library
When a SharePoint library requires checkout, every new upload stays checked out to the person who uploaded it and has no checked-in version. Nobody else can see it. To make it visible, go to Library settings > Manage files which have no checked in version, take ownership of the file, then check it in. To find these files across many sites, use PowerShell or the free sites and lists inventory in SharePoint Essentials Toolkit.
Published:
Last updated: 2026-10-27
Why do uploaded files disappear for everyone else?
The setting behind this is in Library settings > Versioning settings: Require documents to be checked out before they can be edited? When it is set to Yes, SharePoint checks out every new file to the person who adds it. Until they check it in, the file has no checked-in version. It shows up only for that person and for people who can override checkouts.
That is fine when the uploader checks in straight away, but it often goes wrong:
- Required columns are empty. Someone drags in 40 files, the library has a required column, and SharePoint won't check them in until each one has a value. The files stay checked out.
- People don't know. Most users never see a check-in prompt in OneDrive sync or a bulk upload, so they assume the upload worked.
- The uploader leaves. Their files stay checked out to an account that no longer exists.
The symptoms are confusing. Colleagues say the file isn't there, and when they upload their own copy with the same name, SharePoint says a file with that name already exists. Even experienced site owners rarely know where to look.
Option 1: Fix it in the library (built-in)
You need the Override Check-Out permission on the library. It is part of the default Design and Full Control permission levels, so site owners and site collection administrators have it.
- Open the library, select Settings (the gear) > Library settings. In SharePoint Online, select More library settings if the side panel opens first.
- Under Permissions and Management, select Manage files which have no checked in version. The page lists each file and who it is checked out to.
- Tick the files you want and select Take Ownership of Selection. Confirm with OK. The files are now checked out to you.
- Go back to the library. If the library has required columns, open each file's details pane and fill them in first, or the check-in will fail.
- Select the files, then More (…) > Check in. Add a comment such as "Checked in on behalf of Sam after they left". If minor versions are on, choose whether to publish a major version.
- The files are now visible to everyone with access to the library.
What to know
- The page covers one library at a time. On a site with 30 libraries, you check 30 pages.
- It lists only files that have never been checked in. A file that has a checked-in version but is checked out for editing is still visible to others; check it in or discard the checkout from the library itself.
- You can't discard the checkout of a file that has never been checked in, because there's no earlier version to go back to. Check it in or delete it.
- The same steps work in SharePoint Server 2016, 2019 and Subscription Edition, where the page is under Library Settings on the ribbon.
Prevent it: should you require checkout at all?
In SharePoint Online, usually not. Microsoft notes in Set up a library to require check-out of files that requiring checkout stops people co-authoring. Version history already records who changed what and lets you restore any earlier version. If you keep checkout on:
- Give required columns a default value, or make them optional, so bulk uploads can be checked in.
- Tell people that uploads must be checked in, and show them how.
- Check regularly for files with no checked-in version, especially when people leave.
Option 2: PowerShell across every library on a site
CSOM's GetCheckedOutFiles() is the API behind the library settings page, so this script finds the same files in every document library on a site. It uses PnP PowerShell 2.x or later. Since September 2024 PnP PowerShell needs your own Entra ID app registration; create one with Register-PnPEntraIDAppForInteractiveLogin. The script only reads.
# Files with no checked-in version, for every document library on a site
$ClientId = "<your-app-id>"
$SiteUrl = "https://contoso.sharepoint.com/sites/Projects"
Connect-PnPOnline -Url $SiteUrl -Interactive -ClientId $ClientId
$ctx = Get-PnPContext
$rows = foreach ($list in Get-PnPList | Where-Object { $_.BaseTemplate -eq 101 -and -not $_.Hidden }) {
try {
$files = $list.GetCheckedOutFiles()
$ctx.Load($files)
$ctx.ExecuteQuery()
foreach ($f in $files) {
$user = Get-PnPUser -Identity $f.CheckedOutById -ErrorAction SilentlyContinue
[pscustomobject]@{
Library = $list.Title
File = $f.ServerRelativePath.DecodedUrl
CheckedOutTo = if ($user) { $user.Email } else { "User ID $($f.CheckedOutById)" }
}
}
}
catch { Write-Warning "$($list.Title): $($_.Exception.Message)" }
}
$rows | Export-Csv "C:\Reports\no-checked-in-version.csv" -NoTypeInformation -Encoding UTF8
To take over and check in a file from that list, which does change SharePoint, run this for each one after reviewing the CSV:
$f.TakeOverCheckOut(); $ctx.ExecuteQuery() Set-PnPFileCheckedIn -Url $f.ServerRelativePath.DecodedUrl -CheckinType MajorCheckIn -Comment "Checked in by admin"
What to know
GetCheckedOutFiles()isn't paged. On libraries above the 5,000-item list view threshold, SharePoint can refuse the call; the script logs a warning and moves on.- To cover a whole tenant, loop through
Get-PnPTenantSiteand subsites, and expect it to take a while. - Test the script on one site first.
Option 3: Find them across sites with SharePoint Essentials Toolkit
The toolkit counts these files for you as part of its free inventory.
- Add your sites, SharePoint Online or SharePoint Server, as a connection.
- Run Get inventory of sites & lists on the sites you want to check.
- Sort by the Items no checked in version column. It shows the count for every library, and totals for each site, so you know exactly which library pages to open. The count is left blank on libraries above the list view threshold, where SharePoint refuses the call.
- Export to Excel and send each site owner the libraries they need to fix.
For files that are checked out for editing, the Checked out files content search lists every checked-out file in the libraries you pick and who has it. From the report you can tick files and check them in or discard the checkout in bulk. Those actions are part of Enterprise; other editions can apply up to 10 changes at a time to try them.
If you're planning a migration, Check before you copy also warns about files with no checked-in version, because they can't be copied until someone checks them in. See the SharePoint migration checklist.
Frequently asked questions
Why can't other people see a file I uploaded to SharePoint?
The library requires files to be checked out before editing. A new upload stays checked out to you until you check it in, and until then it has no checked-in version, so only you and people who can override checkouts can see it. Check the file in, filling in any required columns first.
Who can take ownership of a file with no checked-in version?
Anyone with the Override Check-Out permission on the library, which is part of the default Design and Full Control permission levels. Site owners and site collection administrators have it.
Can I discard the checkout instead of checking the file in?
Not for a file that has never been checked in, because there is no earlier version to go back to. Take ownership, then either check it in or delete it.
How do I find these files across many sites?
The library page only shows one library at a time. A PowerShell script can loop through libraries using GetCheckedOutFiles, or the free sites and lists inventory in SharePoint Essentials Toolkit shows an "Items no checked in version" count for every library and site.
Should I turn off Require Check Out?
In SharePoint Online, usually yes. Microsoft notes that requiring checkout prevents co-authoring, and version history already records every change. Keep it only where a strict one-editor-at-a-time process is needed.
Find hidden files on every site, free
SharePoint Essentials Toolkit Community Edition is free. Inventory sites and libraries, audit permissions and find broken links on up to 20 sites per Microsoft 365 tenant, with no item caps and no trial period. Get your free Community Edition license key.