Most “common SharePoint issues” round-ups stop at “here’s a category, here’s generic advice” — permissions are hard, versioning is confusing, performance can be slow. That’s true and not very actionable. This post is organized the other way: symptom first, then the specific, verifiable cause, then where to actually go for the full fix rather than repeating a shallow version of it here.
In this post: “I can’t access something I should be able to” · A view or search is missing items that definitely exist · The site is noticeably slow · A custom solution broke after an update · Migrated content looks wrong · The site is cluttered with old content · Nobody actually uses the site · Related reading
“I can’t access something I should be able to”
Almost never a bug — it’s one of three specific causes: the person isn’t actually in the group or list they think they’re in, an item or folder has broken permission inheritance and is governed by its own separate permission set rather than the library’s, or a sharing link was revoked without the underlying group membership being touched. Guessing which of the three it is wastes time; checking is faster than guessing. The scriptable equivalent of the UI’s Check Permissions tool, including item-level scope the UI can’t show at all, is covered in the site’s full permissions guide rather than repeated here.
A view or search is missing items that definitely exist
Two unrelated causes get lumped together under “search is broken.” First, search relevance is only as good as the metadata behind it — a document with no meaningful title, tags, or managed metadata is technically indexed but effectively invisible in a results list ranked by relevance, since there’s nothing distinguishing it from noise. Second, and a completely different mechanism: a filtered or sorted view silently dropping items past 5,000 is the SharePoint list view threshold, a hard, unchangeable limit in SharePoint Online (30 million items can exist in a list; only 5,000 can be returned by a single unindexed view query at once). An item “missing” from a view that’s actually just past the threshold looks identical to a permissions problem or a genuine bug until you know to check for it specifically.
An item “missing” from a filtered view isn’t always a bug — past 5,000 items, the list view threshold silently caps what an unindexed query returns, with no error shown.
The site is noticeably slow
The list view threshold above is the single most common concrete cause, not “the network” or “SharePoint being SharePoint” — a view running against a large, unindexed list is doing genuinely more work per load than one against a properly indexed or filtered equivalent. A second real, specific cause worth checking: a library or list that’s accumulated hundreds of individually broken permission scopes over time (each unique permission entry adds real overhead) is a common, avoidable slowdown that looks like a generic performance problem until someone actually audits how many items have unique permissions rather than inherited ones.
A custom solution broke after an update
Custom script (raw JavaScript/HTML dropped onto a page) and properly packaged SPFx solutions fail differently, and it’s worth knowing which one you’re actually dealing with before troubleshooting. Custom script is blocked by default on modern sites and, where it’s been re-enabled as a workaround, is subject to tightening governance that’s actively being rolled back tenant-wide — a script-injection customization breaking after a platform update is often the platform doing exactly what it’s designed to do, not a bug. A properly deployed SPFx solution breaking is a different, more legitimate problem — usually a version-compatibility issue between the solution and the current SPFx runtime, worth checking against the app catalog’s deployment log before assuming the code itself regressed.
Migrated content looks wrong
Broken links and lost metadata after a migration usually trace back to one specific, well-known cause rather than a generic “migration is messy”: managed metadata term GUIDs are tenant-specific, not portable, so a migration that maps a term-set column by name rather than by GUID can land content tagged with what looks like the right term but is actually a newly-created, disconnected one in the destination tenant — silently breaking every filtered view and rollup that depended on that column meaning the same thing on both sides. Worth checking specifically before trusting a migration’s own “success” report, since a term-mapping failure like this doesn’t throw an error — the migration reports success, and the content just quietly means something different afterward.
The site is cluttered with old content
Worth separating two different problems that get treated as one: content nobody’s deleted because nobody owns the decision, and content that’s legally required to stay put under a retention policy or legal hold even if it looks stale. Deleting the second category because it “looks old” is a real compliance risk, not just a cleanup task — checking what retention policy actually applies to a library before a cleanup pass is worth the extra step, not an optional formality.
Nobody actually uses the site
This one is rarely a training problem first — it’s usually a measurement problem. “Low adoption” is often asserted rather than actually measured against real usage data, which means the fix gets aimed at training or communication when the real issue might be something structural: navigation that takes too many clicks to reach anything useful, or content that’s simply not relevant to most visitors because audience targeting was never set up. Pulling actual usage numbers before assuming the cause is worth doing first — fixing the wrong problem confidently is worse than not fixing anything yet.
Related reading
- SharePoint Permissions: A Comprehensive Guide — the full access-and-permissions picture.
- Managing Document Versioning in SharePoint — version history and Intelligent Versioning in depth.
- SharePoint Retention Period: What You Need to Know — what actually governs whether old content can be deleted.
- SharePoint Online Modern Script Editor and Its Consequences — why custom-script workarounds break, and what to build instead.
- How to Migrate SharePoint Online Content to Another Tenant — the migration options and what each one actually preserves.
Most “SharePoint problems” trace back to one of a fairly short, specific list of real mechanisms once you know what to check for — the frustration usually comes from not knowing which mechanism is actually in play, not from the platform being unpredictable.
App Catalog Authentication Automation Backup Compliance Content Type CSS Flows Google Javascript Limitations List Metadata MFA Microsoft Node NodeJs O365 OneDrive Permissions PnP PnPJS Policy PowerApps Power Automate PowerAutomate PowerPlatform PowerShell React ReactJs Rest API Rest Endpoint Security Send an HTTP Request to SharePoint SharePoint SharePoint List SharePoint Modern SharePoint Online SPFX SPO Sync Tags Teams Termstore Versioning


