Event IDs 1022/2080

Event IDs 1022/2080: Transport Stuck Starting - Fix Guide 2025

Complete troubleshooting guide for Exchange Server Event IDs 1022 and 2080 when the Transport service fails to start. Learn how to fix service dependencies, database corruption, permission issues, and restore mail flow in 15-30 minutes.

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

Table of Contents

Reading Progress
0 of 9

Event IDs 1022 and 2080 indicate the Exchange Transport service cannot start, completely stopping mail flow. No email can be sent or received until the service is running. This guide shows you how to identify the blocking issue and restore transport functionality.

Our Exchange Mail Flow Recovery Team specializes in transport service failures. This guide provides the systematic approach we use to get mail flowing again quickly.

Error Overview: What Events 1022/2080 Mean

These events are logged by MSExchangeTransport when the service encounters fatal errors during initialization. Event 1022 typically appears first (startup attempt), followed by 2080 (component initialization failure).

Typical Event Log Entries
Log Name:      Application
Source:        MSExchangeTransport
Event ID:      1022
Level:         Error
Description:   Microsoft Exchange couldn't start transport agents.
               Error: The process cannot access the file because
               it is being used by another process.

Log Name:      Application
Source:        MSExchangeTransport
Event ID:      2080
Level:         Error
Description:   Microsoft Exchange Transport service initialization
               failed because the queue database could not be
               loaded. Error: JET_errFileAccessDenied

Why this happens: The Transport service requires exclusive access to its queue database (mail.que), proper permissions, dependent services running, and valid configuration. Any failure in these areas prevents startup.

Transport Service Startup Sequence

1
Service Dependencies
AD Topology, Active Directory, NetLogon must be running
2
Configuration Load
Transport settings from AD and local config files
3
Queue Database Mount
mail.que database opened with exclusive access
4
Transport Agents
Anti-spam, routing, compliance agents initialize
Failure at Any Step
Event IDs 1022/2080 logged, service stops

Symptoms & Business Impact

What Users Experience:

  • Emails stuck in Outbox, never sending
  • No new emails received
  • Outlook shows "Trying to connect..." or "Disconnected"
  • OWA may work for reading but sending fails
  • Mobile devices stop syncing new mail

What Admins See:

  • MSExchangeTransport service in "Stopped" or "Starting" state
  • Event IDs 1022, 2080, 2004 in Application log
  • Service fails to start manually with error
  • Get-TransportService returns no data or errors
  • Test-ServiceHealth shows Transport unhealthy

Business Impact:

  • Complete Mail Outage: Zero mail flow until resolved
  • Cascading Delays: Other servers queue mail, creating backlogs
  • Customer Impact: External senders get temporary bounce (450)
  • SLA Breach: Email availability commitments violated

Common Causes of Events 1022/2080

1. Queue Database Corruption (35% of cases)

The mail.que database file is corrupted due to improper shutdown, disk errors, or interrupted writes. Transport cannot mount the database.

Identified by: Event log mentions "JET_err" errors or "database" failures

2. File Lock Conflict (25% of cases)

Another process (antivirus, backup agent, previous Transport instance) holds a lock on mail.que or transaction logs.

Identified by: "File is being used by another process" error

3. Service Dependency Failure (15% of cases)

Required services (AD Topology, Active Directory Access, NetLogon) are not running or unhealthy.

Identified by: Dependency services stopped; Event ID 2114 (AD topology discovery failed)

4. Permission Issues (12% of cases)

Exchange service account lacks required permissions to the queue database folder or registry keys after security changes.

Identified by: "Access denied" or "FileAccessDenied" in event log

5. Transport Agent Failure (8% of cases)

A transport agent (antivirus, DLP, compliance) fails to initialize, blocking service startup.

Identified by: Event mentions specific agent name; "couldn't start transport agents"

6. Disk Space Exhaustion (5% of cases)

Queue database drive has no free space for transaction log creation.

Identified by: Event mentions disk space; drive shows 0 bytes free

Quick Diagnosis: Find the Blocking Issue

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

Run these commands to identify why Transport won't start:

Step 1: Check Service State and Dependencies
# Check Transport service state
Get-Service MSExchangeTransport | Select-Object Name, Status, StartType

# Check dependency services
$deps = @("MSExchangeADTopology", "NetLogon", "DNS")
foreach ($svc in $deps) {
    Get-Service $svc -ErrorAction SilentlyContinue |
      Select-Object Name, Status
}

# Check all Exchange services health
Get-Service MSExchange* | Select-Object Name, Status | Format-Table
Step 2: Review Event Logs for Specific Error
# Get recent Transport-related events
Get-EventLog -LogName Application -Source MSExchangeTransport -Newest 20 |
  Format-Table TimeGenerated, EventID, EntryType, Message -AutoSize -Wrap

# Look for related system events
Get-EventLog -LogName System -Newest 50 |
  Where-Object {$_.Message -like "*transport*" -or $_.Message -like "*MSExchange*"} |
  Format-Table TimeGenerated, Source, EventID, Message -AutoSize

Pro Tip: The key diagnostic information is in the Event ID 2080 message. It typically names the exact component or file that failed. Read the full message text carefully.

Step 3: Check Queue Database Access
# Find queue database location
$queuePath = "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue"

# Check if folder exists and has files
Get-ChildItem $queuePath -ErrorAction SilentlyContinue

# Check for file locks on mail.que
$mailQue = Join-Path $queuePath "mail.que"
if (Test-Path $mailQue) {
    # Try to get exclusive access
    try {
        $stream = [System.IO.File]::Open($mailQue, 'Open', 'Read', 'None')
        $stream.Close()
        Write-Host "mail.que is NOT locked" -ForegroundColor Green
    } catch {
        Write-Host "mail.que IS LOCKED by another process" -ForegroundColor Red
    }
}

# Find what process has the lock (requires handle.exe from Sysinternals)
# handle.exe mail.que
Step 4: Check Disk Space
# Check free space on queue database drive
Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" |
  Select-Object DeviceID,
    @{Name="FreeGB";Expression={[math]::Round($_.FreeSpace/1GB,2)}},
    @{Name="TotalGB";Expression={[math]::Round($_.Size/1GB,2)}},
    @{Name="PercentFree";Expression={[math]::Round(($_.FreeSpace/$_.Size)*100,1)}} |
  Format-Table -AutoSize
Step 5: Check Transport Agent Status
# List all transport agents (run from Exchange Management Shell)
Get-TransportAgent | Select-Object Identity, Enabled, Priority |
  Format-Table -AutoSize

# If you suspect an agent, try disabling it
# Disable-TransportAgent "Suspicious Agent Name""Suspicious Agent Name"

Quick Fix (10 Minutes) - Based on Diagnosis

Fix A: Restart Service with Dependency Check

Restart Transport and Dependencies
# Stop Transport service
Stop-Service MSExchangeTransport -Force

# Ensure dependencies are running
Start-Service MSExchangeADTopology
Start-Sleep -Seconds 10

# Start Transport service
Start-Service MSExchangeTransport

# Check status
Get-Service MSExchangeTransport | Select-Object Name, Status

Fix B: Release File Locks

Clear File Locks
# Stop all Exchange Transport processes
Stop-Service MSExchangeTransport -Force
Stop-Service MSExchangeFrontEndTransport -Force
Stop-Process -Name EdgeTransport -Force -ErrorAction SilentlyContinue

# Wait for processes to fully terminate
Start-Sleep -Seconds 15

# If antivirus is locking files, exclude the queue folder
# Add exclusion for: C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue

# Start Transport
Start-Service MSExchangeTransport

Fix C: Repair Queue Database

Warning: Queued Messages at Risk

Running ESEUTIL on the queue database may result in loss of queued messages. Only proceed if other fixes have failed.

Repair Queue Database
# Stop Transport service
Stop-Service MSExchangeTransport -Force

# Navigate to queue folder
cd "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue"

# Check database state
eseutil /mh mail.que

# If Dirty Shutdown, run soft recovery
eseutil /r trn /l . /d .

# Check state again
eseutil /mh mail.que

# If still corrupted, try repair (DESTRUCTIVE - loses messages)
# eseutil /p mail.que

# Start Transport
Start-Service MSExchangeTransport

Fix D: Reset Queue Database (Last Resort)

Create Fresh Queue Database
# CAUTION: This deletes ALL queued messages!

# Stop Transport
Stop-Service MSExchangeTransport -Force
Stop-Service MSExchangeFrontEndTransport -Force

# Backup old queue folder
$queuePath = "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue"
$backupPath = "C:\ExchangeBackup\Queue_$(Get-Date -Format 'yyyyMMdd_HHmmss')"-Format 'yyyyMMdd_HHmmss')"
Move-Item $queuePath $backupPath

# Create new empty folder
New-Item -ItemType Directory -Path $queuePath -Force

# Start Transport (creates new database)
Start-Service MSExchangeTransport
Start-Service MSExchangeFrontEndTransport

# Verify service running
Get-Service MSExchangeTransport | Select-Object Status

Detailed Solution: Complex Scenarios

Scenario 1: Transport Agent Blocking Startup

Disable Problematic Transport Agent
# List all agents with status
Get-TransportAgent | Format-Table Identity, Enabled, Priority

# Disable a specific agent (common culprits: antivirus, DLP)
Disable-TransportAgent "Malware Agent"
Disable-TransportAgent "Transport Rule Agent"

# Try starting Transport
Restart-Service MSExchangeTransport

# If successful, re-enable agents one by one to find the problematic one
Enable-TransportAgent "Transport Rule Agent"
Restart-Service MSExchangeTransport

# If a specific agent causes issues, check its configuration or update it

Scenario 2: Permission Issues

Fix Transport Folder Permissions
# Check current permissions
$queuePath = "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles"
icacls $queuePath

# Reset permissions to default Exchange settings
$exchangeInstallPath = $env:ExchangeInstallPath
& "$exchangeInstallPath\bin\ResetSecurity.ps1" -Server $env:COMPUTERNAME

# Or manually grant permissions
$acl = Get-Acl $queuePath
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "NT AUTHORITY\NETWORK SERVICE", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow"
)
$acl.SetAccessRule($rule)
Set-Acl $queuePath $acl

# Restart Transport
Restart-Service MSExchangeTransport

Scenario 3: AD Topology Discovery Failure

Fix AD Topology Service
# Check AD Topology service
Get-Service MSExchangeADTopology | Select-Object Name, Status

# Restart AD Topology service
Restart-Service MSExchangeADTopology
Start-Sleep -Seconds 30

# Verify AD connectivity
$dc = (Get-ADDomainController -Discover).HostName
Test-NetConnection -ComputerName $dc -Port 389

# Clear AD Topology cache
Stop-Service MSExchangeADTopology
Remove-Item "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\ADDriverCache.dat" -Force -ErrorAction SilentlyContinue
Start-Service MSExchangeADTopology
Start-Sleep -Seconds 30

# Now start Transport
Start-Service MSExchangeTransport

Scenario 4: Certificate Issues

Fix Transport Certificate Binding
# Check certificates assigned to SMTP
Get-ExchangeCertificate | Where-Object {$_.Services -like "*SMTP*"} |
  Select-Object Thumbprint, Subject, NotAfter, Services

# If no certificate assigned or expired:
# Generate new self-signed certificate
$cert = New-ExchangeCertificate -GenerateRequest:$false -SubjectName "cn=mail.company.com" -PrivateKeyExportable $true -Services "SMTP"

# Or assign existing certificate to SMTP
Enable-ExchangeCertificate -Thumbprint "CERT_THUMBPRINT" -Services SMTP

# Restart Transport
Restart-Service MSExchangeTransport

Pro Tip: After any fix, check the Windows Event Log for the successful startup event (Event ID 1000 from MSExchangeTransport indicating service started successfully).

Verify the Fix

After Transport starts, confirm mail flow is working:

Verification Commands
# 1. Verify Transport service is running
Get-Service MSExchangeTransport | Select-Object Name, Status

# 2. Check Transport service health
Test-ServiceHealth | Where-Object {$_.Role -eq "Mailbox"} |
  Select-Object Role, RequiredServicesRunning, ServicesNotRunning

# 3. Verify queues are functional
Get-Queue | Select-Object Identity, Status, MessageCount | Format-Table

# 4. Send test email
Send-MailMessage -From "admin@company.com" -To "test@company.com" `
  -Subject "Transport Test $(Get-Date)" -Body "Testing after 1022/2080 fix"2080 fix" `
  -SmtpServer localhost

# 5. Check message tracking
Start-Sleep -Seconds 30
Get-MessageTrackingLog -Start (Get-Date).AddMinutes(-5) -MessageSubject "Transport Test*" |
  Select-Object Timestamp, EventId, Source, Recipients

# 6. Verify no new error events
Get-EventLog -LogName Application -Source MSExchangeTransport -Newest 10 |
  Select-Object TimeGenerated, EventID, EntryType

Success Indicators:

  • MSExchangeTransport service shows Running
  • Test-ServiceHealth shows all services running
  • Get-Queue returns queue information without error
  • Test email appears in tracking log with DELIVER event
  • No Event IDs 1022 or 2080 after service start

Prevention: Stop Transport Failures From Recurring

1. Configure Antivirus Exclusions

Required Antivirus Exclusions
# Folders to exclude from antivirus scanning:
# - C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\
# - C:\Program Files\Microsoft\Exchange Server\V15\Bin\
# - C:\Windows\Temp\OICE_*

# Processes to exclude:
# - EdgeTransport.exe
# - MSExchangeTransport.exe
# - Microsoft.Exchange.*.exe

2. Monitor Transport Service Health

Transport Monitoring Script
# Schedule this to run every 5 minutes
$svc = Get-Service MSExchangeTransport

if ($svc.Status -ne "Running") {
    # Attempt automatic restart
    Start-Service MSExchangeTransport -ErrorAction SilentlyContinue
    Start-Sleep -Seconds 60

    $svc = Get-Service MSExchangeTransport
    if ($svc.Status -ne "Running") {
        # Alert admin
        Send-MailMessage -To "admin@company.com" -From "alerts@company.com" `
          -Subject "CRITICAL: Exchange Transport Service Down on $env:COMPUTERNAME" `
          -Body "Transport service failed to start. Manual intervention required." `
          -SmtpServer "backup-smtp.company.com"
    }
}

3. Ensure Adequate Disk Space

  • Minimum 20GB free on queue database drive
  • Configure disk space alerts at 10GB threshold
  • Review and purge old transport logs monthly

4. Graceful Server Restarts

  • Always stop MSExchangeTransport before server reboot
  • Wait for service to stop cleanly (queue database checkpoint)
  • Never hard-reset Exchange servers if avoidable

5. Keep Transport Agents Updated

  • Update third-party transport agents with Exchange CUs
  • Test agent compatibility in lab before production
  • Remove unused transport agents

Transport Still Won't Start? Get Expert Help.

If the Transport service continues to fail after these troubleshooting steps, there may be deeper issues with queue database corruption, Active Directory replication, or third-party software conflicts. Our mail flow specialists can diagnose and resolve complex transport failures.

Exchange Transport Service Recovery

Average Response Time: 15 Minutes

Frequently Asked Questions

Event ID 1022 indicates the Transport service encountered an error during startup and is retrying. Event ID 2080 signals the Transport service failed to initialize a critical component. Together, they indicate the mail transport system cannot start properly, halting all mail flow through the affected server.

Can't Resolve Event IDs 1022/2080?

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