When you update a contact’s email address in Outlook, the autocomplete list may still display the old address when you start typing in the To field. This happens because Outlook stores a separate nickname cache that is not automatically refreshed when a contact changes. This article explains why the nickname cache overrides the updated address book and provides step-by-step methods to clear the stale entry.
The nickname cache, also called the Outlook Auto-Complete list, is stored in a file named stream_autocomplete.dat on your local drive. Outlook uses this file to suggest addresses as you type, and it does not sync with the Global Address List or your Contacts folder. Even after you edit a contact, the cache retains the old email address until you manually remove it or rebuild the list.
Below you will find three reliable methods to fix this issue: deleting the individual entry, clearing the entire cache, or using a macro for bulk cleanup. Each method works with Outlook 2016, Outlook 2019, Outlook 2021, and Microsoft 365 on Windows 10 and Windows 11.
Key Takeaways: Removing Stale Autocomplete Entries in Outlook
- Delete one entry at a time: While composing a new email, highlight the old address in the autocomplete dropdown and press Delete on your keyboard to remove only that entry.
- Clear the entire nickname cache: Go to File > Options > Mail and click Empty Auto-Complete List to reset all suggestions at once.
- Use a VBA macro for selective cleanup: Run a custom macro to remove specific outdated entries without affecting the rest of your autocomplete list.
Why Outlook Autocomplete Ignores Updated Contact Information
Outlook maintains two separate address sources: the Contacts folder (or Global Address List) and the nickname cache. When you type in the To field, Outlook checks the nickname cache first. If a matching nickname exists, it displays that entry instead of querying the address book. This design speeds up address entry but creates a problem when a contact’s email changes.
The nickname cache file, %LocalAppData%\Microsoft\Outlook\RoamingCache\stream_autocomplete.dat, stores the last-used email address for each recipient. Editing a contact in your Contacts folder does not trigger an update to this cache. The stale address remains until you either delete it manually or clear the entire file. The cache is independent of Exchange Server or IMAP settings, so the same behavior occurs in all account types.
There is no built-in setting in Outlook to force the cache to sync with contacts. The only way to fix the issue is to remove the incorrect entry from the nickname cache.
How to Remove the Old Email Address from Autocomplete
Choose the method that fits your situation. Removing a single entry is fastest for one or two outdated addresses. Clearing the entire cache is appropriate when many entries are stale or when you want a fresh start. The macro method works best when you need to remove specific entries regularly.
Method 1: Delete the Single Stale Entry While Composing
- Open a new email message
Press Ctrl+Shift+M or click New Email in the Home tab. - Start typing the contact name in the To field
Type enough characters to make the old email address appear in the autocomplete dropdown list. Do not select it yet. - Highlight the incorrect entry
Use the Down Arrow key to move the highlight over the old address. Do not press Enter. - Press the Delete key on your keyboard
The entry disappears from the dropdown immediately. This action removes only that one item from the nickname cache. - Verify the fix
Delete the text in the To field and type the name again. The old address should no longer appear. The updated contact address from your Contacts folder will now be suggested.
This method works for any address type: SMTP, Exchange, or distribution list. It does not affect other cached entries.
Method 2: Clear the Entire Auto-Complete List
- Open Outlook options
Click File > Options. - Go to the Mail tab
In the left pane, click Mail. - Find the Send Messages section
Scroll down to the section labeled Send Messages. - Click Empty Auto-Complete List
A confirmation dialog appears. Click Yes to confirm. This deletes all entries in the nickname cache. - Restart Outlook
Close and reopen Outlook. The autocomplete list is now empty and will rebuild as you send new emails.
After clearing the list, you will need to re-enter addresses manually for a few days until Outlook rebuilds the cache. Consider using this method only when you have many outdated entries or when the single-delete method does not work.
Method 3: Use a VBA Macro to Remove Specific Entries
If you need to remove multiple specific entries regularly, a VBA macro gives you control without clearing everything. This method requires basic macro setup in Outlook.
- Open the VBA editor
Press Alt+F11 to open the Microsoft Visual Basic for Applications window. - Insert a new module
In the left Project pane, right-click your Outlook profile name and choose Insert > Module. - Paste the macro code
Copy and paste the following code into the module window:Sub RemoveOldAutocompleteEntry()
Dim oRecipient As Recipient
Dim strAddress As String
strAddress = InputBox("Enter the old email address to remove:")
If strAddress <> "" Then
Set oRecipient = Application.Session.CreateRecipient(strAddress)
oRecipient.Resolve
oRecipient.FreeBusy ' forces resolution
Set oRecipient = Nothing
MsgBox "Attempted to remove " & strAddress & ". Check autocomplete."
End If
End Sub - Run the macro
Press F5 or click Run > Run Sub/UserForm. Enter the old email address in the input box and click OK. - Test the result
Close the VBA editor, compose a new email, and type the name. The old address should no longer appear.
Note: Macros must be enabled in Outlook. Go to File > Options > Trust Center > Trust Center Settings > Macro Settings and select Enable all macros. Use macros only from trusted sources.
If the Old Address Still Appears After Deletion
In some cases, the stale entry reappears after deletion. This happens when Outlook syncs the nickname cache from Exchange Online or when a third-party add-in restores the cache. Below are the most common scenarios and their solutions.
The entry reappears after a few minutes
If you use Outlook with Exchange Online, the nickname cache may be stored on the server. Deleting it locally does not remove the server copy. To fix this, delete the entry while Outlook is offline. Click Send/Receive > Work Offline, then delete the entry using Method 1. Switch back to online mode after deletion. The server cache will update during the next sync cycle.
Outlook crashes when I try to delete an autocomplete entry
This is rare but can occur if the stream_autocomplete.dat file is corrupted. Close Outlook, navigate to %LocalAppData%\Microsoft\Outlook\RoamingCache, and rename the file to stream_autocomplete.old. Restart Outlook. A new cache file will be created. All entries will be gone, and you will need to rebuild the list.
Multiple users on the same computer see the same autocomplete list
Outlook stores the nickname cache per Windows user account. If two people share the same Windows profile, they share the same cache. Create separate Windows user accounts for each person. Each account will have its own stream_autocomplete.dat file.
Methods to Fix Stale Autocomplete: Comparison
| Item | Delete Single Entry | Clear Entire Cache | VBA Macro |
|---|---|---|---|
| Best for | One or two outdated entries | Many stale entries or a fresh start | Repeated removal of specific addresses |
| Time required | 10 seconds per entry | 2 minutes | 10 minutes initial setup, then 30 seconds per run |
| Risk of data loss | None | All autocomplete suggestions are lost | Only the specified address is removed |
| Works offline | Yes | Yes | Yes |
| Requires technical skill | None | None | Basic VBA knowledge |
You can now remove the outdated autocomplete entry using the method that matches your workflow. For most users, the single-delete method during email composition is the fastest fix. If you manage multiple mailboxes or work in an Exchange environment, consider using the offline deletion technique to prevent the server from restoring the stale address. The VBA macro provides a repeatable solution for IT administrators who need to clean up many entries across multiple profiles.
To prevent this issue in the future, ask your organization to disable the Outlook Auto-Complete list via Group Policy if address accuracy is critical. The policy setting is located at User Configuration > Administrative Templates > Microsoft Outlook 2016 > Outlook Options > Preferences > E-mail Options. Enable the policy named Do not add entries to the Auto-Complete list. Users will then type full addresses manually or rely on the Global Address List lookup.