My epic 4g with gingerbread will randomly not play the custom ringtones I'v asigned to contacts. It will instead play the custom default ringtone, which is also on the SD card.

Most of the time this happens after the card remounts after having it connected to a computer, but it also randomly happens any time. I'll get a call from a person in my contacts and their tone plays, then a few minutes later the same person calls and the default tone plays.

Making this work properly 100% of the time could be as simple as a plain text file in onboard storage with two tab delimited columns for contact's numbers and the location and name of the ringtone, then making sure the phone app ALWAYS looks at that file. Of course when the card is unmounted it would fall back to a default tone in internal storage, which it does without a problem.

At least it doesn't have the bug some Nexus phones have with Gingerbread where they randomly change tones multiple times a day and often change the selection to None in the middle of the night.