El error lo dice todo:
Duplicate entry ''
Así que ejecuta la siguiente consulta:
SELECT unique_id,COUNT(unique_id)
FROM yourtblname
GROUP BY unique_id
HAVING COUNT(unique_id) >1
Esta consulta también le mostrará el problema
SELECT *
FROM yourtblname
WHERE unique_id=''
Esto le mostrará dónde hay valores que tienen duplicados. Está intentando crear un índice único en un campo con duplicados. Primero deberá resolver los datos duplicados y luego agregar el índice.