many thanks!
ModelAdmin automatically creates the Contact GridField for the LeadsAdmin. Your codes overwrite that gridfield.
I think it is a 'bug' that GridFieldAutocompleter doesn't look into the $searchable_fields of the Contact object to find out what searchable_fields are. It only checks if the Contact object has a 'Name' field or not to decide whether the Contact object is searchable or not.
Although your solution works but i think the perfect solution is to update The GridFieldAutoCompleter. Hope the SS team can look into this?
regards,
Ben