Error 0x6D9

Error 0x6D9: Replication Service Not Running - Fix Guide 2025

Complete troubleshooting guide for Exchange Server Error 0x6D9 indicating the replication service is not running. Learn how to restart dependent services, fix RPC endpoint mapper issues, and restore DAG high availability.

Medha Cloud
Medha Cloud Exchange Server Team
Exchange Database Recovery Team10 min read

Table of Contents

Reading Progress
0 of 9

Error 0x6D9 in Exchange Server indicates the replication service is not running or its RPC endpoints are not registered. This breaks Database Availability Group (DAG) replication, leaving your passive database copies unable to receive updates from the active copy. This guide shows you how to quickly restore the replication service and verify DAG health.

Our Exchange High Availability Services team resolves replication service issues within minutes. This guide provides the same diagnostic and recovery process we use.

Error Overview: What 0x6D9 Means

Error code 0x6D9 (decimal 1753) translates to ERROR_EPT_S_NOT_REGISTERED, which means "There are no more endpoints available from the endpoint mapper." In the context of Exchange DAG, this occurs when the Microsoft Exchange Replication service (MSExchangeRepl) is not running or its RPC endpoints are not available.

Typical Error Message
Log Name:      Application
Source:        MSExchangeRepl
Event ID:      3355
Level:         Error
Description:   The Microsoft Exchange Replication service failed to
               communicate with server 'EXCH02.company.com'.
               Error: 0x6D9 (There are no more endpoints available
               from the endpoint mapper)

Service Dependencies

RpcSs
MSExchangeRepl
DAG Replication

Dependency Chain: RPC Endpoint Mapper (RpcSs) must be running for MSExchangeRepl to register its endpoints. MSExchangeRepl handles all DAG log shipping and replay.

Symptoms & Business Impact

What You'll See:

  • Event ID 3355 or 4113 in Application log mentioning Error 0x6D9
  • Get-MailboxDatabaseCopyStatus shows "ServiceDown" for passive copies
  • Test-ReplicationHealth fails with "ClusterService" or "ReplayService" errors
  • Database copy queue length growing on affected server
  • Failover attempts to the affected server fail

What Users Experience:

  • Users typically experience no immediate impact (active copy still serves requests)
  • If active copy fails, automatic failover to affected server will fail
  • Search results may become stale if content indexing stops

⚠️ Hidden Risk: Users won't notice Error 0x6D9 until a real failover is needed. Your DAG appears healthy until the active copy fails and automatic failover attempts fail. Monitor replication status proactively.

Common Causes of Error 0x6D9

1. MSExchangeRepl Service Stopped (50% of cases)

Most Common Cause: The Microsoft Exchange Replication service stopped due to crash, manual stop, or dependency failure.

Identified by: Get-Service MSExchangeRepl shows "Stopped" status

2. RPC Endpoint Mapper Issues (25% of cases)

Infrastructure Issue: RPC service (RpcSs) having problems, firewall blocking RPC dynamic ports, or endpoint registration failed.

Identified by: Multiple services showing RPC errors, not just Exchange

3. Network Connectivity Loss (15% of cases)

Network Issue: DAG member cannot communicate with other members over the replication network.

Identified by: Cannot ping other DAG members, network trace shows drops

4. Service Account Problems (10% of cases)

Security Issue: Exchange service account password expired, locked out, or permissions changed.

Identified by: Event ID 7000/7009 in System log about service logon failure

Quick Diagnosis: PowerShell Commands

📌 Version Compatibility: This guide applies to Exchange 2016, Exchange 2019, Exchange 2022. Commands may differ for other versions.

Step 1: Check Replication Service Status
# Check on all DAG members
$dagMembers = (Get-DatabaseAvailabilityGroup).Servers
foreach ($server in $dagMembers) {
    $svc = Get-Service -ComputerName $server -Name MSExchangeRepl -ErrorAction SilentlyContinue
    "$server : $($svc.Status)"$svc.Status)"
}
Step 2: Check Service Dependencies
# Check RPC service
Get-Service RpcSs | Format-List Name,Status,StartType

# Check all Exchange services
Get-Service MSExchange* | Format-Table Name,Status,StartType -AutoSize

# Check dependent services
Get-Service MSExchangeRepl | Select-Object -ExpandProperty DependentServices
Step 3: Check Recent Errors
# Replication service events
Get-EventLog -LogName Application -Source MSExchangeRepl -Newest 20 |
    Format-Table TimeGenerated, EventID, EntryType, Message -AutoSize

# Service control events
Get-EventLog -LogName System -Source "Service Control Manager" -Newest 20 |
    Where-Object {$_.Message -like "*MSExchange*"}
Step 4: Test RPC Connectivity
# Test RPC ports to other DAG members
$targetServer = "EXCH02"
Test-NetConnection -ComputerName $targetServer -Port 135  # RPC Endpoint Mapper
Test-NetConnection -ComputerName $targetServer -Port 64327 # Exchange Replication

Quick Fix (5 Minutes) - Restart Service

⚠️ Safe to use if:

  • RPC service (RpcSs) is running
  • No service account issues in System log
  • Network connectivity to other DAG members is working

Solution: Restart Replication Service

Restart MSExchangeRepl Service
# On the affected server, run as Administrator
Restart-Service MSExchangeRepl -Force

# Verify service started
Get-Service MSExchangeRepl | Format-List Name,Status,StartType

# Check replication resumed
Start-Sleep -Seconds 30
Get-MailboxDatabaseCopyStatus -Server $env:COMPUTERNAME |
    Format-Table DatabaseName,Status,CopyQueueLength

✅ Expected Result:

  • Service status shows "Running"
  • Database copy status changes from "ServiceDown" to "Healthy"
  • CopyQueueLength starts decreasing toward 0
  • No new 0x6D9 errors in event log

Detailed Solution: Advanced Troubleshooting

Scenario 1: Service Won't Start

Fix Service Startup Issues
# Check service account
$svc = Get-WmiObject Win32_Service -Filter "Name='MSExchangeRepl'"
$svc.StartName  # Should be LocalSystem or specific service account

# Reset service to LocalSystem if needed
sc.exe config MSExchangeRepl obj= LocalSystem

# Check for dependency issues
sc.exe qc MSExchangeRepl

# Restart with dependencies
Restart-Service RpcSs -Force
Start-Sleep -Seconds 5
Start-Service MSExchangeRepl

# If still fails, check for corrupted service registration
# Re-register Exchange services
cd "C:\Program Files\Microsoft\Exchange Server\V15\Bin"
.\ServiceControl.ps1 -Action Start -ServiceName MSExchangeRepl

Scenario 2: RPC Endpoint Issues

Fix RPC Registration
# Reset RPC endpoint mapper
Restart-Service RpcSs -Force
Start-Sleep -Seconds 10

# Re-register all Exchange RPC endpoints
Get-Service MSExchange* | Where-Object {$_.Status -eq "Running"} | Restart-Service -Force

# Verify RPC endpoints registered
netsh rpc show int  # Should list Exchange interfaces

# Check Windows Firewall isn't blocking RPC
Get-NetFirewallRule -DisplayGroup "Remote*" | Where-Object {$_.Enabled -eq $true} |
    Format-Table DisplayName,Enabled,Direction

Scenario 3: Network/Firewall Issues

Fix Network Connectivity
# Required ports for DAG replication
$requiredPorts = @(135, 64327, 64328, 64329)  # RPC, Replication

# Test to each DAG member
$dagMembers = (Get-DatabaseAvailabilityGroup).Servers
foreach ($server in $dagMembers) {
    Write-Host "Testing $server :" -ForegroundColor Cyan
    foreach ($port in $requiredPorts) {
        $test = Test-NetConnection -ComputerName $server -Port $port -WarningAction SilentlyContinue
        "$port : $($test.TcpTestSucceeded)"$test.TcpTestSucceeded)"
    }
}

# Open firewall rules if needed
New-NetFirewallRule -DisplayName "Exchange Replication" -Direction Inbound -LocalPort 64327-64329 -Protocol TCP -Action Allow

Scenario 4: Service Keeps Crashing

Diagnose Recurring Crashes
# Check for memory issues
Get-Counter '\Process(msexchangerepl)\Working Set - Private' -SampleInterval 5 -MaxSamples 3

# Check crash dumps
Get-ChildItem "C:\Program Files\Microsoft\Exchange Server\V15\Logging\Diagnostics\DailyPerformanceLogs" -Filter "*.csv" |
    Sort-Object LastWriteTime -Descending | Select-Object -First 1

# Increase service recovery options
sc.exe failure MSExchangeRepl reset= 86400 actions= restart/60000/restart/60000/restart/60000

# Check for antivirus interference
# Ensure AV excludes: C:\Program Files\Microsoft\Exchange Server\V15\*

💡 Pro Tip: If the replication service crashes repeatedly, collect a process dump before it crashes using ProcDump or Windows Error Reporting. This helps Microsoft Support identify the root cause.

Verify the Fix

Verification Commands
# 1. Verify service running
Get-Service MSExchangeRepl | Format-List Name,Status

# 2. Check replication health
Test-ReplicationHealth | Format-Table Server,Check,Result -AutoSize

# 3. Verify database copies healthy
Get-MailboxDatabaseCopyStatus * | Format-Table DatabaseName,MailboxServer,Status,CopyQueueLength

# 4. Test failover capability (optional)
# Test-MailboxDatabaseFailover -DatabaseCopyName "DB01\EXCH02"-DatabaseCopyName "DB01\EXCH02"

# 5. Monitor for new errors
Get-EventLog -LogName Application -Source MSExchangeRepl -Newest 10 |
    Where-Object {$_.EntryType -eq "Error"}

✅ Success Indicators:

  • MSExchangeRepl service status is "Running"
  • Test-ReplicationHealth shows all checks "Passed"
  • Database copies show "Healthy" status
  • CopyQueueLength is 0 or decreasing
  • No new Event ID 3355 or 0x6D9 errors

Prevention: Keep Replication Running

1. Configure Service Recovery

Set Automatic Restart on Failure
# Configure service to restart automatically on failure
sc.exe failure MSExchangeRepl reset= 86400 actions= restart/30000/restart/60000/restart/120000

# Verify configuration
sc.exe qfailure MSExchangeRepl

2. Monitor Service Status

Service Monitoring Script
# Add to scheduled task (every 5 minutes)
$servers = (Get-DatabaseAvailabilityGroup).Servers
$stoppedServices = @()

foreach ($server in $servers) {
    $svc = Get-Service -ComputerName $server -Name MSExchangeRepl -ErrorAction SilentlyContinue
    if ($svc.Status -ne "Running") {
        $stoppedServices += "$server : $($svc.Status)"$svc.Status)"
    }
}

if ($stoppedServices) {
    Send-MailMessage -To "admin@company.com" -Subject "Exchange Replication Service Alert" -Body ($stoppedServices -join [Environment]::NewLine) -SmtpServer "mail.company.com"
}

3. Antivirus Exclusions

  • Exclude Exchange install directory from real-time scanning
  • Exclude database and log file paths
  • Exclude Exchange-specific processes (MSExchangeRepl.exe, etc.)

4. Regular Health Checks

  • Run Test-ReplicationHealth daily
  • Monitor Windows Event Logs for service errors
  • Test failover monthly during maintenance windows

Service Won't Stay Running?

Recurring service crashes often indicate deeper issues: memory leaks, corrupted Exchange components, or infrastructure problems. Our Exchange specialists can diagnose the root cause and implement permanent fixes.

Get DAG Expert Support

Average Resolution Time: 30 Minutes

Frequently Asked Questions

Error 0x6D9 (ERROR_EPT_S_NOT_REGISTERED) indicates the RPC endpoint mapper cannot find the requested service endpoint. In Exchange DAG environments, this typically means the Microsoft Exchange Replication service is stopped, crashed, or its RPC endpoints are not properly registered.

Can't Resolve Error 0x6D9?

Exchange errors can cause data loss or extended downtime. Our specialists are available 24/7 to help.

Emergency help - Chat with us
Medha Cloud

Medha Cloud Exchange Server Team

Microsoft Exchange Specialists

Our Exchange Server specialists have 15+ years of combined experience managing enterprise email environments. We provide 24/7 support, emergency troubleshooting, and ongoing administration for businesses worldwide.

15+ Years ExperienceMicrosoft Certified99.7% Success Rate24/7 Support