Troubleshooting Guide: SQL Server Error 878 — Resilient Buffer Pool Extension Creation Failure
Why This Error Happens
Error 878 occurs when SQL Server 2025 cannot allocate or create the resilient buffer pool extension (BPE) file at the specified path, typically because the SQL Server service account lacks NTFS write permissions on the target directory or drive. This can also happen if the target volume has insufficient free disk space to accommodate the requested buffer pool extension size, or if the path references a non-existent directory, a removable/network drive that doesn’t support the required persistent memory semantics, or a volume formatted with an incompatible file system (non-NTFS/ReFS). Additionally, file corruption or a pre-existing locked file at that path from a previous failed attempt can block creation of the new resilient buffer extension file.
Step-by-Step Resolution Guide
Step 1: Verify NTFS Permissions on the Target Path
- Open File Explorer, navigate to the drive/folder specified in the error message (e.g.,
D:\SQLBPE\). - Right-click the folder → Properties → Security tab.
- Confirm the SQL Server service account (e.g.,
NT Service\MSSQLSERVERor a custom domain service account) has Full Control permissions. - If missing, click Edit → Add, enter the service account name, and grant Full Control, then click Apply.
Step 2: Confirm Disk Space and Path Validity
- Open PowerShell as Administrator and run:
Get-PSDrive -PSProvider FileSystem
- Ensure the target volume has enough free space to match the configured BPE size (check via
sys.dm_os_buffer_pool_extension_configuration). - Confirm the path exists and is on a local, fixed NTFS or ReFS volume — not a network share (UNC paths are unsupported for BPE).
- If the directory doesn’t exist, create it manually:
New-Item -ItemType Directory -Path "D:\SQLBPE"
Step 3: Remove Stale or Locked BPE Files
- Check the target path for leftover
.bpefiles from a previous failed configuration attempt. - Stop the SQL Server service via SQL Server Configuration Manager.
- Manually delete any orphaned
.bpefile in the directory. - Restart the SQL Server service and re-run the
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSIONcommand.
Step 4: Reconfigure the Buffer Pool Extension
- Execute the following T-SQL to disable and re-enable the BPE with correct parameters:
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION OFF;
GO
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION ON
( FILENAME = 'D:\SQLBPE\BPE.bpe', SIZE = 4096 MB );
GO
- Ensure the
SIZEvalue does not exceed available free disk space and follows the supported ratio relative to physical RAM.
Alternative or Verification Steps
- Run
SELECT * FROM sys.dm_os_buffer_pool_extension_configuration;in SSMS to confirm the BPE state shows asstate_description = RUNNING. - If the error persists, check the SQL Server Error Log and Windows Event Viewer (Application log) for underlying I/O or antivirus-blocking errors, and consider targeting a different local SSD-backed volume as an alternative path.