duplicate key error creating unique index on temp, SQL Server 12.0.5589 bug?
When using the READ UNCOMMITTED isolation level, it is possible for SQL Server to read the same data twice - causing you to get duplicate results, even if there is a unique constraint ensuring there are no duplicates of that data in the table.

Looking at some of the comments on the question:


  Thanks, the general consensus seems to be the iso level, but keep in mind, i've probably used that same basic query above in hundreds of places, and have never seen this behavior before


This won't happen all the time, and can depend a lot on whether the source table is being updated, the physical operations SQL Server chooses to use to read the data, and the nature of the query being run.


  I will change the iso level and watch it (for possibly a year) to see if we get the same error in the future


That's great, changing the isolation level is your best option for preventing this problem!

When you have time, there is some great information out there on the issues around using the READ UNCOMMITTED isolation level:


Paul White's post (in a series about isolation levels): The Read Uncommitted Isolation Level
A blog post from Brent Ozar with a very clear demo of how results can change under READ UNCOMMITTED: Using NOLOCK? Here’s How You’ll Get the Wrong Query Results.