You have a Notion database where a rollup property displays values from pages that no longer exist. This usually happens after deleting a page that was linked through a relation property. The rollup continues to show stale data because the relation link was not fully removed. This article explains why deleted pages appear in rollup results and provides clear steps to remove them permanently.
Key Takeaways: Fixing Stale Rollup Data from Deleted Pages
- Relation property > Remove the broken link: Manually deleting the relation entry that points to the deleted page clears the rollup value immediately.
- Rollup property > Recalculate: After removing the relation link, the rollup property recalculates and stops showing the deleted page’s data.
- Database > Duplicate the page: If the relation link cannot be found, duplicating the page with the rollup and deleting the original resets all relation references.
Why a Notion Rollup Shows Deleted Pages
Notion’s relation property creates a direct link between two database pages. When you delete a page from the related database, the link in the original database’s relation column becomes orphaned. The rollup property, which pulls values from the related page, tries to read data from the now-missing page. Instead of showing a blank cell, Notion displays the last cached value or an empty row. This happens because the relation link still exists even though the target page is gone. Notion does not automatically remove the relation entry when a page is deleted. The rollup then continues to reference that broken link.
Steps to Remove Deleted Pages from a Rollup
The fix requires removing the orphaned relation link from the page that contains the rollup. Follow these steps carefully.
- Open the database page with the rollup
Navigate to the database that contains the rollup property. Click on the page name that shows the stale rollup data. - Locate the relation property
Find the relation property on the page. It appears as a list of linked pages. The deleted page may still appear in this list with a broken icon or as a grayed-out link. - Hover over the deleted page link
Move your mouse over the name of the deleted page in the relation list. A small X or remove button appears on the right side of the entry. - Click the X to remove the link
Click the X to delete the relation entry. The deleted page link disappears from the relation property immediately. - Check the rollup property
Look at the rollup property on the same page. The stale value from the deleted page should now be gone. If the rollup shows multiple values, only the removed page’s value disappears. - Repeat for all affected pages
If multiple pages in the database have the same issue, repeat steps 1 through 5 for each page. This clears all orphaned relation links.
If the Relation Link Cannot Be Found
Sometimes the relation property does not show the deleted page as a clickable link. In that case, the relation entry may be hidden or corrupt. Use the database duplicate method as an alternative.
- Duplicate the entire database
Click the three-dot menu in the upper-right corner of the database view. Select Duplicate. This creates a copy of the database with all properties and data. - Check the duplicated database
Open the duplicated database. The rollup properties should no longer show values from deleted pages because the duplication process rebuilds relation links. - Delete the original database
After verifying the duplicate works correctly, delete the original database. Rename the duplicate to the original name to keep your workspace organized.
If the Rollup Still Shows Stale Data After Removing the Link
If the rollup property continues to display a value from the deleted page after you remove the relation link, the rollup may be caching an old result. Force a refresh by editing the rollup property.
- Open the rollup property settings
Click on the rollup property name at the top of the database column. Select Edit property from the dropdown menu. - Change the rollup calculation
Change the calculation type to a different option, such as Count or Show Original, and then change it back to your original setting. This forces Notion to recalculate the rollup. - Save the property
Click Close or Done to save the changes. The rollup should now show only values from existing linked pages.
Common Issues and Edge Cases
Rollup Shows Blank Instead of Removing the Deleted Page Value
If the rollup uses a calculation like Sum or Average, removing a relation link changes the result. For text rollups, the deleted page’s value may be replaced by a blank line. To remove the blank entirely, ensure no other relation entries are empty. If the blank persists, duplicate the page as described in the section above.
Deleted Page Appears in Multiple Relation Properties
A single deleted page can be linked to multiple pages through different relation properties. You must remove the relation link from each page individually. There is no bulk remove option in Notion. Use the database duplicate method if the number of affected pages is large.
Relation Link Cannot Be Removed Because the Page Is Locked
If the page containing the relation property is locked, you cannot modify the relation. Unlock the page first by clicking the lock icon in the upper-right corner of the page. Then remove the relation link. Lock the page again after the fix if needed.
Manual Relation Removal vs Database Duplicate: Methods Compared
| Item | Manual Relation Removal | Database Duplicate |
|---|---|---|
| Time required | 30 seconds per page | 2 minutes for whole database |
| Data loss risk | None | Low if duplicate is verified |
| Best for | 1-5 affected pages | More than 10 affected pages |
| Preserves page history | Yes | No, duplicate resets history |
You can now remove stale rollup data caused by deleted pages in Notion. Start by manually removing the orphaned relation link from each affected page. If that does not work, duplicate the database to rebuild all relation references. As an advanced tip, add a formula property that checks if a relation link exists before displaying the rollup value using the empty() function to prevent future stale data.