One of my email contacts has a new email address as their company changed their domain name. I have deleted and re-entered her correct email address about half a dozen times in the address book and yet my PC still thinks I am sending her emails to her old domain.com instead of her new domain.com. When I entered her name it defaults to the "olddomain.com" address even though it is nowhere to be found on my PC. I have to select her "newdomain.com" address from the address book for it to work. Has anyone experienced where Outlook is keeping this old email address info? How can I can purge it?
This is an all too common experience for many users.
Use the arrow key to select the incorrect address and press the Delete key.
You can clear the entire autocomplete file: in older versions you need to delete the *.NK2 file from your hard drive, while Outlook 2010 and newer has a button to clear the Autocomplete cache in Options (screenshot below).
Outlook 2010 and newer
Beginning with Outlook 2010, Outlook does not use the NK2 file; it stores the autocomplete cache in the mailbox or data file and caches the addresses in an autocomplete stream at C:\Users\%username%\AppData\Local\Microsoft\Outlook\RoamCache. You can type or paste %localappdata%\Microsoft\Outlook\RoamCache in the address bar of Windows Explorer then press Enter to open the folder location where the cache is stored in a file named Stream_Autocomplete_0_[long GUID].dat.
Clear the autocomplete cache using the File, Options, Mail, Empty Auto-complete list button.
You can also use the /cleanautocompletecache switch to clear the cache.
Close Outlook. Press Windows key + R to open the Run command and type or paste the following line and press enter to start Outlook. (There is a space before /.)
If addresses are not saving in the auto-complete list between Outlook sessions and clearing the cache doesn't fix the problem, you may need to delete the RoamCache file. Instructions are at Outlook doesn't save Autocomplete.
See Suggested Contacts and Auto-Complete Lists to learn more about Outlook 2010's autocomplete cache and suggested contacts.
Outlook 2010 also creates a contact for people you send mail to, as insurance if the autocomplete cache becomes corrupt. Look for these contacts in the Suggested Contacts folder. This unpopular feature was removed from Outlook beginning with Outlook 2013.
Clear the NK2 file in Outlook 2007
The nickname files (.nk2) used by Outlook 2007 (and 2003) is found at C:\Documents and Settings\%username%\Application Data\Microsoft\Outlook if you are using Windows XP/2000 or C:\Users\%username%\Application Data\Microsoft\Outlook.
You can access this folder by pasting %USERPROFILE%\Application Data\Microsoft\Outlook in the Address bar of Windows Explorer.
Close Outlook then delete or rename the *.NK2 file. When you restart Outlook it will create a new, empty NK2 file.
Nickname cache is empty
We use Outlook and my users aren't very good at adding email addresses to the Contacts folder and rely heavily on the autocomplete cache, but it gets replaced often. Why does it seem so fragile?
If the users are losing addresses of people they recently replied to (but not older addresses), it's because Outlook crashes or does not close properly and the changes are not written to the NK2 file. The existing *.NK2 shouldn't be replaced by a clean *.NK2 if this happens, but new addresses you've sent new mail to or replied to won't be saved to the file. Less used addresses are replaced by new addresses when the NK2 contains 1000 addresses in Outlook 2003 or 2000 address if using Outlook 2007.
If all addresses disappear, it means something is corrupt and Outlook is replacing the NK2 with a new, clean one.
If you're using the autocomplete cache as your address book because it's too much effort to right click on an address and save it as a new Contact, you should use a utility that creates contacts from all addresses you reply to, as the autocomplete cache is not a good substitute for contacts.
Import addresses from NK2
When you upgrade from Outlook 2007 and earlier in-place and use the same profile, Outlook 2010 or 2013 should import the NK2 you used with your previous Outlook version automatically on the first run. If Outlook didn't import the NK2 automatically, or you are using a new computer and didn't think to move the NK2 file, or you made a new profile, you can import the NK2 after the first run by using the ImportNK2 switch.
When you import the NK2, the contents of the file are merged into the existing nickname cache that is currently stored in your mailbox.
To import .nk2 files into Outlook 2010 and newer, follow these steps:
- Make sure that the .nk2 file is in the following folder:
The .nk2 file must have the same name as your current Outlook profile. (By default, the profile name is "Outlook.")
- Press Windows Key + R to open the Run dialog.
- In the Open box, type (or paste) outlook.exe /importnk2, and click OK to import the NK2 into your profile.
The .nk2 file is renamed with a .old file name extension on the first start of Outlook 2010. If you need to re-import the .nk2 file, remove the .old file name extension.
Use the nicknames with new profiles
If you create a new profile you can copy the NK2 file used by your old profile. You'll need to rename it so it matches the name of your new profile.
How to clear names from the cache
To remove single addresses, select the name using the arrow keys then press Delete. In Outlook 2010, you can also click the x beside the name to delete it or use the Backspace key.
To remove all of the addresses from the autocomplete cache in Outlook 2007 or 2003, either delete the NK2 file (at %USERPROFILE%\Application Data\Microsoft\Outlook ) or go to Tools, Options, Email Options, Advanced Email Options and deselect the option to suggest names near the bottom of the dialog.
In Outlook 2010, clear the cache using the File, Options, Mail dialog, Empty Auto-complete List button.
Remove an Address from the Auto-Complete Cache Tutorial
Auto-Complete Cache Editing Tools
Open source project to read MS Outlook autocomplete (NK2) files and extract email addresses. Beta version 0.5
Use NK2Edit to edit or delete information stored in the NK2 file or Outlook 2010/2013's Autocomplete Stream, including the display name, the email address, the exchange string, the Drop-Down display name, and the search string. Free for home use; Commercial license available.
Use NK2View to view, edit or delete entries in Outlook's .NK2 AutoComplete file. Export the records to text, html, or xml files. Freeware. Version 1.37
Autocomplete List Cache Size
There is a limit of 1000 names on the autocomplete cache in Outlook. The limit can be raised in Outlook by use of a registry setting. Note: this value will not exist by default and is only needed if you want to change the limit.
Outlook 2016, 2019, 365:
Value: Between 1 and 2000, in decimal
Do It For Me
The following registry files will change the registry key to 2000 entries. Download the file for your version of Outlook and double click to run.
Outlook 2003 Outlook 2007 Outlook 2010
To learn more about the files Outlook uses and where they are stored, visit
Outlook & Exchange/Windows Messaging Backup and Dual-Boot.
OUTLOOK.EXE continues running after you exit Outlook
Outlook 2010's Suggested Contacts and Auto-Complete Lists
I found the info in this article about the autocomplete cache from Outlook (applicable to Version 2111 in the section about Outlook 2010 or Newer) very helpful in moving a family member from one computer to a new one. Thank you!!
Hi Diane, Great article, really useful. Any idea how MS calculates the weights in the NK2/autocomp file?
I know you're an Outlook mastermind, but not sure if this extends into Excel! Is it possible to pull the Auto-complete list into Excel using VBA? I have code that pulls the "Contacts" list, but I'm trying to do the same with the Auto-complete. To do so, the code needs to know the "name" of the list. For example, "Contacts", "Global Address List", etc... as seen in the following code snippet.
***** Set olAL = olNS.AddressLists("Global Address List")
Appreciate any insight!
You can't use VBA (I don;t think redemption can read it either, but will check) to access the autocomplete list - but nirsoft.net's NK2Edit can read the autocomplete file.
Thanks for the prompt reply! I was hoping to avoid external programs, as I'm building this for my company. Greatly appreciate your response!
Outlook 365; "There is a limit of 1000 names on the autocomplete cache in Outlook" So.. what happens when cache is full (>over 1000 names)
How does Outlook then "behaves" with new email addresses? Many thanks!
The oldest addresses are removed. Outlook orders the address by recently used - so old addresses you haven't used should be removed.
I have Outlook 365/2016 64 bit. The AutoNameCheck registry SubKey does not exist on 2 PCs I have checked: HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\AutoNameCheck
If the key doesn't exist, you need to add it.
I'm using Outlook 2013 (IMAP) and when I add a contact from within an email it is only stored in the autocomplete list(?). I was hoping to add the contact directly to the Contacts address book. I can only see this person when I click on To: and search the displayed list. He never actually shows up in my People address book.
How do I fix this? I thought I might import the autocomplete list, but it appears to also include my address book contacts.
When you save a contact by right-clicking on the address and choosing Add to Contacts, it is added to the default contacts folder. That is why you see it when you click on To.
Can you find it if you search People? How many contacts folders do you have?
I just tried the NK2Edit tool. Marvellous piece of software!
My AutoComplete cache disappeared. This allowed me to recreate it from my sent items.
Can't recommend this tool highly enough!
This is Great I used debunk2 to convert .Dat file.
1.The DAT file has larger Size that’s your auto-complete list
2.Make a Backup copy for your File.
3.Rename .dat to .NK2 file
4.Used the debunk2-0.5-win32
5.Point the file .NK2 to Open it
6.Save the file .TSV or .CSV Comma-Separated Values
7.Open the file in a notepad or Excel
8.Select All field to COPY
9.Open the outlook create new email and paste all address and hit enter at the end of your list.
you don't need to sent that's email to everyone, Just close the email open the new e-mail to test all the new list populated.
Dummy e-mail will fool the outlook to re-Index the .Dat was corrupt before.