How to fix Error 7804 on Windows Server 2025 / Windows 11

Troubleshooting Guide: SQL Server Error 7804

Why This Error Happens

Error 7804 occurs when SQL Server’s internal configuration logic detects that two distinct objects, parameters, or security identifiers (SIDs) have been assigned an identical value when uniqueness is strictly required. This commonly happens during Availability Group configuration, linked server setups, or login creation where a GUID, SID, or instance identifier gets duplicated due to a cloned VM, restored system database, or manual scripting error. In Windows Server 2025 environments, this is frequently triggered by sysadmins cloning a VM template with SQL Server already installed, causing the Instance ID or Service SID to collide with another instance on the network.

Step-by-Step Resolution Guide

Step 1: Identify the Conflicting Objects

  • Open SQL Server Error Log (via SSMS > Management > SQL Server Logs) and locate the full text of Error 7804 to identify the two %.*ls placeholders (these will usually be login names, SIDs, or endpoint parameters).
  • Run the following query to check for duplicate SIDs among logins:
  SELECT name, sid FROM sys.server_principals 
  GROUP BY name, sid HAVING COUNT(*) > 1;

Step 2: Resolve Duplicate SIDs or Login Conflicts

  • If the conflict involves Windows logins (common after VM cloning), drop and recreate the duplicate login with a freshly generated SID:
  DROP LOGIN [DOMAIN\ConflictingUser];
  CREATE LOGIN [DOMAIN\ConflictingUser] FROM WINDOWS;
  • If the issue involves a SQL Login SID specifically, explicitly assign a new SID during creation to avoid default collision:
  CREATE LOGIN [UserName] WITH PASSWORD = 'StrongPassword!', SID = 0x1A2B3C4D...;

Step 3: Check Availability Group or Endpoint Configuration

  • If the error references endpoint URLs or Availability Group replicas, open SQL Server Configuration Manager and verify the TCP Port and Listener IP are not duplicated across nodes.
  • Navigate to Always On High Availability > Availability Group Listeners in SSMS and ensure no two replicas share the same Virtual Network Name (VNN) or IP address.

Step 4: Rebuild the System Database Identifiers (If Required)

  • If the duplication persists at the instance level (likely due to cloning), run sp_dropserver and sp_addserver to reset the local server name and internal ID reference:
  EXEC sp_dropserver 'OldServerName';
  GO
  EXEC sp_addserver 'NewServerName', local;
  GO
  • Restart the SQL Server (MSSQLSERVER) service via services.msc for the changes to take effect.

Alternative or Verification Steps

  • Verify the fix by restarting the SQL Server service and querying sys.server_principals or sys.availability_group_listener_ip_addresses again to confirm no duplicate values remain.
  • If the error persists after resolving logins, use DBCC CHECKDB to rule out metadata corruption in the msdb or master database as an alternative root cause.