29.7.14

A's in Boxes: debugging an intermittent font issue on OS X


I found a rather intruiging problem recently, where dialog boxes would come up looking like this:


Obviously, it was rather difficult to understand what was being presented in the dialog box.  It seemed to be limited to dialog boxes that were requesting authentication. Some research showed that this problem was pretty esoteric. I found no information on how this might be fixed, surprisingly. 

Since it was a font issue, I headed to Font Book, OS X's font management tool.  Once there, I found that several fonts had been disabled, due to conflicts.  Closer inspection showed that the fonts that were disabled were duplicates. 

The solution seemed simple: resolve the duplicates. I selected all the fonts, then opened the File menu, and selected Validate Fonts.  This, unsurprisingly, brought up the Font Validation dialog, which tested the fonts.  I selected Warnings or Errors from the drop-down box at the top, checked the Select all fonts checkbox, and clicked Remove Checked.  After it was done churning away, I rebooted.

Most of the dialog box font issues disappeared at this point, with the exception of dialog boxes in Keychain Access.  I still saw the A's in boxes.  Returning to Font Book, I found that I still had one font, Lucida Grande, that was causing problems with a duplicate.  I attempted to remove the disabled version, only to be presented with a warning telling me that I could not remove it, because it contained the system copy f .Lucida Grande UI. 

Since there were multiple copies, I reasoned that it must exist under my account's Library/Fonts folder, and sure enough, there it was.  I rebooted to safe mode, first to check that the dialog box font would work (it did), then to delete the duplicate in my home directory. 

Once the font was moved from the Library/Fonts directory, I rebooted again. This time, when I opened Keychain Access and performed an action, I was greeted with fonts that I could actually read. Success!

(Of course, more searching later led me to find things that would have been useful... thanks, Murphy!)