Fix ERROR_DS_ATT_VAL_ALREADY_EXISTS (0X00002083)
This error means a directory attribute value already exists. Usually a duplicate or sync issue in Active Directory. Here's how to fix it.
Quick answer: Use ADSI Edit to find the duplicate attribute value on the object, then remove the duplicate or correct the attribute that's causing the conflict.
This error hits when you try to add a value to an attribute in Active Directory — like a phone number, email, or a group member — but that exact value is already there. It's not a system crash. It's just AD saying "Hey, I already have this." Happens a lot when you're scripting bulk updates, using migration tools, or when replication lags cause a double-write. I've seen it most often when adding users to distribution groups or updating proxyAddresses.
Here's the thing: AD doesn't let you store the same value twice in a multi-valued attribute. So if the value exists, you get this error. The fix is straightforward — you find the duplicate and remove or correct it.
Main Fix: Remove the Duplicate Attribute Value
- Open ADSI Edit. On your domain controller, go to
Start > Run, typeadsiedit.msc, and press Enter. If it's not installed, go to Server Manager, add the AD DS Tools feature (it's under Remote Server Administration Tools). - Connect to the correct naming context. Right-click 'ADSI Edit' at the top-left, choose 'Connect to...'. For most users, select 'Default naming context'. Then click OK. You should see something like 'Domain [yourdomain.com]' pop up.
- Navigate to the object with the problem. Expand the domain, then the container where the object lives (like 'Users' or 'Computers'). Find the user, computer, or group giving you the error. Right-click it and choose 'Properties'. A properties window opens.
- Find the duplicate attribute. In the 'Select which properties to view' dropdown, choose 'Both'. Scroll through the 'Attributes' list until you see the attribute that the error mentioned — like
proxyAddresses,member,mail, ortelephoneNumber. Click that attribute. The 'Values' box below will show all current values. - Look for the duplicate. Compare the values in the list with what you tried to add. For example, if you tried to add
smtp:user@domain.com, check if it's already there — maybe with different case (likeSMTP:instead ofsmtp:). AD is case-insensitive but case-preserving, so 'smith@contoso.com' and 'Smith@Contoso.com' are considered the same. - Remove the duplicate. If you see the value already in the list, click 'Remove' to delete it. Then click 'Apply' and 'OK'. After that, try your original operation again. It should work now.
- If you can't see the duplicate, check the object in another tool. Open Active Directory Users and Computers (dsa.msc). Find the same object, right-click, go to 'Properties', then the 'Attribute Editor' tab (if you have Advanced Features enabled under View). Look for the same attribute. Sometimes ADSI Edit shows values that other tools don't, but it's worth double-checking.
Alternative Fix 1: Use PowerShell to Remove the Value
If ADSI Edit feels clunky, use PowerShell instead. Open PowerShell as administrator on a domain controller.
First, check what the current values are. Run this command, replacing the attribute name and object DN as needed:
Get-ADUser -Identity "username" -Properties proxyAddresses | Select-Object -ExpandProperty proxyAddresses
(Use Get-ADGroup for groups, Get-ADComputer for computers.)
If you see the duplicate, remove it with:
Set-ADUser -Identity "username" -Remove @{proxyAddresses="smtp:user@domain.com"}
Then add it back (if needed) with:
Set-ADUser -Identity "username" -Add @{proxyAddresses="smtp:user@domain.com"}
This method is cleaner and faster for batch jobs. But be careful — if you remove a value that's in use for email routing or group membership, you'll break things. Double-check before hitting Enter.
Alternative Fix 2: Fix Replication Issues
Sometimes the value doesn't actually exist on the object — it's a replication ghost. Two domain controllers both try to add the same value at the same time, and one of them sees the other's change as a duplicate. This is rare but happens in multi-site environments.
Wait a few minutes for replication to finish, then try again. If you're in a hurry, force replication:
- Open Active Directory Sites and Services (dssite.msc).
- Expand your site, then 'Servers', then the server with the problem.
- Right-click the NTDS Settings object under it, choose 'Replicate Now'. Wait for the confirmation message.
- Retry your original operation.
If it's still failing, check the event logs for replication errors (Event ID 1988 or 2042). You might have lingering objects that need cleaning up with repadmin /removelingeringobjects.
Prevention Tip
Before adding values in bulk, always check if the value already exists. In your script or tool, do a read operation first — query the attribute for that specific value. If it's there, skip the add. This is standard practice for migration tools like Active Directory Migration Tool (ADMT) or third-party sync tools. It also saves you from hitting this error 50 times in a row.
Another thing: use consistent casing in attributes like proxyAddresses. If you always use lowercase smtp: and uppercase SMTP: for the primary address, you'll avoid confusion. But AD still treats them as the same value internally, so case isn't the real problem — it's usually just a duplicate entry left over from a previous attempt.
That's it. This error is annoying but easy to fix once you know where to look. The real fix is always the same: find the duplicate, kill it, move on.
Was this solution helpful?