Overview
Discussions keeps every board of a site in a handful of ordinary SharePoint lists, so the limits that apply are the limits of SharePoint Online lists plus a few fixed values built into the web part. This article lists those values as implemented in version 26.11.4, explains the effects of paging, indexes and the list view threshold, and gives recommendations for sites with very large boards or very long threads. The lists and columns themselves are described in KB10426. Discussions Lists and Columns Reference.
The limits at a glance
| Item | Value | Where it comes from |
|---|---|---|
| Topics loaded per page | Topics per page setting: 5–100 in steps of 5, default 20 | Property pane, Appearance group |
| Topics in a board, boards on a site | No limit in the web part | SharePoint list limits apply |
| Boards offered in drop-downs | First 500 boards of the site, sorted by title | Fixed value |
| Replies loaded for a topic | All replies, read from the server in batches of 500 | Fixed value |
| Nesting depth of replies | No configurable maximum; limited by the 255-character parent path | Data model (materialized path) |
| Topic title | 255 characters | SharePoint Title column |
| Inline image | 10 MB per file; image files only | Fixed value, The image is larger than 10 MB. |
| Attachments per topic or reply | No limit in the web part | SharePoint list item attachments |
| Attachment file name | Reserved characters replaced by _; longer than 120 characters truncated | Fixed rule |
| Items per section of the moderation queue | 200 most recent | Fixed value |
| Items in the Discussions Activity web part | Maximum items setting: 1–50, default 5 | Property pane, Appearance group |
| Subscriptions read per user and board | 500 | Fixed value |
| Classic items read by the importer | Batches of 2,000 until the source list is exhausted | Fixed value |
How the topic list stays fast
Each request returns at most the configured number of topics, sorted by the pinned flag and then by last activity, newest first. Load more uses the continuation link returned by SharePoint. Paging limits the response size; it does not guarantee constant server work or avoid the list view threshold.
Several filters and sort columns are indexed, but not every condition is. In particular, the accepted-answer column used by the answered views has no index:
| Filter | Column | Used by |
|---|---|---|
| Board | VtxBoard (lookup, indexed) | Every query |
| Approval | VtxApprovalStatus (indexed) | Members: approved items and their own |
| View Unanswered | VtxTopicType (indexed), VtxAcceptedPostId (not indexed) | Questions with accepted-post ID 0 |
| View Answered | VtxAcceptedPostId (not indexed) | Accepted-post ID greater than 0 |
| View Featured | VtxIsFeatured (indexed) | Featured topics |
| View My topics | Created By | The current user's topics |
| Category drop-down | VtxCategory (indexed) | Selected category |
| Sort order | VtxIsSticky, VtxLastActivity (indexed) | Every query |
Title search adds a contains condition. Neither a small page size nor fewer than 5,000 topics on one board guarantees a successful query: all boards on the site share the topics list, and the board filter uses a lookup. Microsoft states that an indexed lookup column does not prevent list view threshold errors. Test the actual queries with representative data; use site search if a query is refused. See Microsoft: Add an index to a list or library column.

📝 Note
The web part searches topic titles only. Reply text and topic bodies are not searched; to find them, use the SharePoint search of the site, which indexes the Discussions Topics and Discussions Posts lists like any other list.
Long threads
When a topic is opened, the web part loads all of its replies, not just the first page. Replies are read from the Discussions Posts list in batches of 500 through the indexed VtxTopic lookup, and the reply tree is then built in the browser from the parent and path columns. There is no configurable maximum depth, but the parent path column is limited to 255 characters, so arbitrary nesting is not guaranteed. There is no separate “show more replies” step.
The practical consequences:
- Assuming full batches of 500 visible replies and successful queries: a thread with 2,000 replies needs four requests before it is shown; a thread with 10,000 replies needs twenty. The page becomes noticeably heavier, because every reply is rendered at once.
- Deeply nested replies are indented level by level. On narrow screens, very deep branches become hard to read; moderators can lock a topic that has run its course and ask for a new one.
- The Replies counter in the list is a stored number on the topic, not a live count (see KB10432. Counters, Last Activity or Best Answer Look Wrong).
Images and attachments
Inline images pasted, dropped or inserted with the Insert image button are uploaded to the Discussions Assets document library. The web part creates a folder per calendar year (for example 2026) and stores every image there under a unique name. Year folders organise the files; a busy year can still exceed the list view threshold. Images larger than 10 MB are rejected before the upload starts; files that are not images are ignored by the editor.
Attachments added with Attach file are ordinary list item attachments on the topic or reply. The web part puts no limit on their number or size; the limits of SharePoint Online for list item attachments apply. File names are made safe for SharePoint before the upload: the characters \ / : * ? " < > | # % & { } ~ are replaced by an underscore and names longer than 120 characters are shortened.

Moderation queue, Activity web part and subscriptions
- The Moderation screen requests up to 200 newest items in each of six sections: pending, rejected and reported topics and replies. Reply queries first select items across the whole site and only then filter them to the current board. Other boards can occupy that 200-item window, hiding older replies from the current board. The queue is not a complete audit: inspect the underlying lists for a large backlog.
- Discussions Activity requests the number of topics configured in Maximum items (1–50), filtered by approval and sorted by last activity. This limits the response size but does not guarantee that a large-list query succeeds.
- Subscriptions are read per user and board, up to 500 rows; subscriptions beyond that window are not returned by this query.
Counters and versioning
Reply counts, view counts, last activity and the like are stored on the topic item and updated by the browser of the user who replies or opens the topic. Each such update creates a new version of the topic item, because the lists are created with versioning enabled. On a very active board, the version history of a popular topic grows quickly; a site owner can lower the number of versions kept in List settings → Versioning settings of Discussions Topics without affecting the web part.
❗ Important
Keep the indexes on the Vtx columns and the original list templates. Removing indexes can worsen query performance. Existing indexes do not guarantee that every query on large shared lists will succeed.
Recommendations for very large boards
- Plan shared lists. Boards on one site share the same lists; splitting one board into several does not reduce the total list size or create separate access boundaries. Separate sites provide separate lists when that fits your organisation.
- Test realistic volumes. Check search and each view with representative data. A board below 5,000 topics is not a guarantee; if a query is refused, use site search and review the list design.
- Use categories to organise related topics. The category column is indexed, but filtering still has a processing cost.
- Lock finished threads and start new ones instead of letting a single topic collect thousands of replies.
- Page size. Start with 20 topics per page. Increasing it to 100 returns and renders more data per request and can make the initial load heavier.
- Imports. The importer reads batches of 2,000 and writes items individually. Test permissions and a representative source before a large import, allow time, and review warnings and interrupted runs. KB10417. How to Import a Classic SharePoint Discussion Board into Discussions.
💡 Tip
If you plan a board for the whole organization, set a default view and a page size that fit the audience, as described in KB10422. Views, Paging, Search and Counters: Display Settings of the Discussions Web Part, and put the Discussions Activity web part on the home page so that people reach recent topics without scrolling the board.