Avoid exposing a cryptic exception and instead show an explanatory error message to the user by allowing error handling for PhabricatorTypeaheadInvalidTokenException in PhabricatorApplicationSearchController instead of PhabricatorTypeaheadDatasource.
Yes, hardcoding names of child classes is ugly. Better ideas welcome.