This sometimes occurs if you’re importing a file into iPhoto and there’s already a file there with the same name. Digital cameras can produce many, many files with the same name over their lifetime, so it’s not uncommon to have several files called IMG_00543.JPG, for instance. Now you want to import one also called this.
What happens is that iPhoto compares the two files to check for duplicates. However, if iPhoto cannot find the file
already in the database for comparison, then you get this message. It suggests that your database is damaged because iPhoto has lost track of this (or these) similarly named files.
A simple test is to rename the file you are importing - just add a character - IMG_00543a.JPG for instance. If this then imports with no issue then you might consider rebuilding your library:
Download
iPhoto Library Manager and use its rebuild function. This will create a new library based on data in the albumdata.xml file. Not everything will be brought over - no slideshows, books or calendars, for instance - but it should get all your albums and keywords back.
Because this process creates an entirely new library and leaves your old one untouched, it is non-destructive, and if you're not happy with the results you can simply return to your old one.
Regards
TD