How do I get iPhoto's facial recognition to stick? I worked with iPhoto for a while, tagging photos with faces. Now when I view my own faces, I see "Steven Fisher may be in 8 additional photos."

I click Confirm Additional Faces, then click to confirm each additional face. I click Done. There's no error message, but I still see "Steven Fisher may be in 8 additional photos." And when I click Confirm Additional Faces, I see the same eight photos.

I can repeat this over and over again. I've recursively changed the permissions on the photo library to 777, changed the owner, rebuilt the library (letting iPhoto change the permissions), but nothing's helped. I once fixed this by completely deleting the library, re-adding all the photos to it, but it died again within a few weeks (and, of course, I lost a ton of metadata I'll never get back). What else could be wrong?
It didn't happen to me with the latest version of iPhoto yet. But the only solution I found to fix this kind of issues in iPhoto '09 without trashing the entire iPhoto library was to remove only the Faces related files. With the '11 version the procedure would be:


Close iPhoto
Find your iPhoto library
Right click on the photo library and chose "Show Package Content"





Navigate to the Database directory






Edit: If you save your iPhoto library regularly you can restore the files instead of deleting them. To open the iPhoto bundle in Time Machine follow the instructions in this answer. 




Depending on your version of iPhoto you might have to right click on Faces.db and "Show Original"


 

Delete the original Faces.db in the newly opened folder.




Delete the 2 Faces files in the Database directory





Relaunch iPhoto
Go to your Photos library





Select all the pictures (click on a picture then  &#x2318;+A to select all pictures).
Then in the "Photos" menu select "Detect Missing Faces"




You could also try removing only some of the files in the Faces directory before and relaunching iPhoto to check which file might be corrupted in your case.