We recently experienced some "unexpected" external fuzzing in our instance.
I have not found ways to reproduce but stacktraces of the triggered exceptions expose some take-aways.
PhabricatorSearchField::getListFromRequest() and PhabricatorApplicationSearchEngine::readListFromRequest(), both used for "constructing URIs, especially from external sources" return a list (array). The list is supposed to only contain string elements (expected by the handling code afterwards) but in fact it may also include array elements (unexpected, triggered by some URI parameter construction I have not figured out).
As a potential improvement, there is phutil_string_cast() in https://we.phorge.it/source/arcanist/browse/master/src/utils/utils.php$1774-1821 which seems a more sophisticated version than casting via (string)... and fails more nicely by outputting (Exception) Value passed to "phutil_string_cast()" is an array; arrays can not be sensibly cast to strings.
Examples
https://we.phorge.it/source/phorge/browse/master/src/applications/search/field/PhabricatorSearchTokenizerField.php$33 calls PhabricatorSearchField::getListFromRequest() defined in https://we.phorge.it/source/phorge/browse/master/src/applications/search/field/PhabricatorSearchField.php$393-422 supposed to return an array of strings:
[2025-05-12 17:10:24] EXCEPTION: (RuntimeException) strpos() expects parameter 1 to be string, array given at [<arcanist>/src/error/PhutilErrorHandler.php:273] #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<arcanist>/src/error/PhutilErrorHandler.php:273] #1 <#2> strpos(array, string) called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php:468] #2 <#2> PhabricatorTypeaheadDatasource::isFunctionToken(array) called at [<phorge>/src/applications/search/field/PhabricatorSearchTokenizerField.php:46] #3 <#2> PhabricatorSearchTokenizerField::getUsersFromRequest(AphrontRequest, string, array) called at [<phorge>/src/applications/search/field/PhabricatorSearchSubscribersField.php:15] #4 <#2> PhabricatorSearchSubscribersField::getValueFromRequest(AphrontRequest, string) called at [<phorge>/src/applications/search/field/PhabricatorSearchField.php:250] #5 <#2> PhabricatorSearchField::readValueFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:139] #6 <#2> PhabricatorApplicationSearchEngine::buildSavedQueryFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:106] #7 <#2> PhabricatorApplicationSearchController::processSearchRequest() called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:91] #8 <#2> PhabricatorApplicationSearchController::processRequest() called at [<phorge>/src/aphront/AphrontController.php:29] #9 <#2> AphrontController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/AphrontController.php:71] #10 <#2> AphrontController::delegateToController(PhabricatorApplicationSearchController) called at [<phorge>/src/applications/maniphest/controller/ManiphestTaskListController.php:20] #11 <#2> ManiphestTaskListController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #12 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #13 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #14 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #15 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:204] #16 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
https://we.phorge.it/source/phorge/browse/master/src/applications/search/field/PhabricatorSearchTokenizerField.php$33 calls PhabricatorSearchField::getListFromRequest() defined in https://we.phorge.it/source/phorge/browse/master/src/applications/search/field/PhabricatorSearchField.php$393-422 supposed to return an array of strings:
[2025-05-12 17:07:39] EXCEPTION: (RuntimeException) strpos() expects parameter 1 to be string, array given at [<arcanist>/src/error/PhutilErrorHandler.php:273] #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<arcanist>/src/error/PhutilErrorHandler.php:273] #1 <#2> strpos(array, string) called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php:468] #2 <#2> PhabricatorTypeaheadDatasource::isFunctionToken(array) called at [<phorge>/src/applications/search/field/PhabricatorSearchTokenizerField.php:46] #3 <#2> PhabricatorSearchTokenizerField::getUsersFromRequest(AphrontRequest, string) called at [<phorge>/src/applications/people/searchfield/PhabricatorUsersSearchField.php:11] #4 <#2> PhabricatorUsersSearchField::getValueFromRequest(AphrontRequest, string) called at [<phorge>/src/applications/search/field/PhabricatorSearchField.php:250] #5 <#2> PhabricatorSearchField::readValueFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:139] #6 <#2> PhabricatorApplicationSearchEngine::buildSavedQueryFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:106] #7 <#2> PhabricatorApplicationSearchController::processSearchRequest() called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:91] #8 <#2> PhabricatorApplicationSearchController::processRequest() called at [<phorge>/src/aphront/AphrontController.php:29] #9 <#2> AphrontController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/AphrontController.php:71] #10 <#2> AphrontController::delegateToController(PhabricatorApplicationSearchController) called at [<phorge>/src/applications/maniphest/controller/ManiphestTaskListController.php:20] #11 <#2> ManiphestTaskListController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #12 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #13 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #14 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #15 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:204] #16 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
https://we.phorge.it/source/phorge/browse/master/src/applications/project/searchfield/PhabricatorProjectSearchField.php$15 calls PhabricatorSearchField::getListFromRequest() defined in https://we.phorge.it/source/phorge/browse/master/src/applications/search/field/PhabricatorSearchField.php$393-422 supposed to return an array of strings:
[2025-05-12 17:06:17] EXCEPTION: (RuntimeException) strpos() expects parameter 1 to be string, array given at [<arcanist>/src/error/PhutilErrorHandler.php:273] #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<arcanist>/src/error/PhutilErrorHandler.php:273] #1 <#2> strpos(array, string) called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php:468] #2 <#2> PhabricatorTypeaheadDatasource::isFunctionToken(array) called at [<phorge>/src/applications/project/searchfield/PhabricatorProjectSearchField.php:25] #3 <#2> PhabricatorProjectSearchField::getValueFromRequest(AphrontRequest, string) called at [<phorge>/src/applications/search/field/PhabricatorSearchField.php:250] #4 <#2> PhabricatorSearchField::readValueFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:139] #5 <#2> PhabricatorApplicationSearchEngine::buildSavedQueryFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:106] #6 <#2> PhabricatorApplicationSearchController::processSearchRequest() called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:91] #7 <#2> PhabricatorApplicationSearchController::processRequest() called at [<phorge>/src/aphront/AphrontController.php:29] #8 <#2> AphrontController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/AphrontController.php:71] #9 <#2> AphrontController::delegateToController(PhabricatorApplicationSearchController) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:50] #10 <#2> PhabricatorApplicationSearchEngine::buildResponse() called at [<phorge>/src/applications/calendar/controller/PhabricatorCalendarEventListController.php:38] #11 <#2> PhabricatorCalendarEventListController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #12 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #13 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #14 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #15 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:204] #16 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
https://we.phorge.it/source/phorge/browse/master/src/applications/search/field/PhabricatorSearchCheckboxesField.php$40 calls PhabricatorSearchField::getListFromRequest() defined in https://we.phorge.it/source/phorge/browse/master/src/applications/search/field/PhabricatorSearchField.php$393-422 supposed to return an array of strings:
[2025-05-12 17:07:20] EXCEPTION: (RuntimeException) Illegal offset type in isset or empty at [<arcanist>/src/error/PhutilErrorHandler.php:273] #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<arcanist>/src/utils/utils.php:39] #1 <#2> idx(array, array, array) called at [<phorge>/src/applications/search/field/PhabricatorSearchCheckboxesField.php:91] #2 <#2> PhabricatorSearchCheckboxesField::getCanonicalValue(array) called at [<phorge>/src/applications/search/field/PhabricatorSearchCheckboxesField.php:41] #3 <#2> PhabricatorSearchCheckboxesField::getValueFromRequest(AphrontRequest, string) called at [<phorge>/src/applications/search/field/PhabricatorSearchField.php:250] #4 <#2> PhabricatorSearchField::readValueFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:139] #5 <#2> PhabricatorApplicationSearchEngine::buildSavedQueryFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:106] #6 <#2> PhabricatorApplicationSearchController::processSearchRequest() called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:91] #7 <#2> PhabricatorApplicationSearchController::processRequest() called at [<phorge>/src/aphront/AphrontController.php:29] #8 <#2> AphrontController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/AphrontController.php:71] #9 <#2> AphrontController::delegateToController(PhabricatorApplicationSearchController) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:50] #10 <#2> PhabricatorApplicationSearchEngine::buildResponse() called at [<phorge>/src/applications/calendar/controller/PhabricatorCalendarEventListController.php:38] #11 <#2> PhabricatorCalendarEventListController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #12 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #13 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #14 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #15 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:204] #16 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
https://we.phorge.it/source/phorge/browse/master/src/applications/spaces/searchfield/PhabricatorSpacesSearchField.php$16 calls PhabricatorSearchField::getListFromRequest() defined in https://we.phorge.it/source/phorge/browse/master/src/applications/search/field/PhabricatorSearchField.php$393-422 supposed to return an array of strings:
[2025-05-12 17:01:29] EXCEPTION: (RuntimeException) preg_match() expects parameter 2 to be string, array given at [<arcanist>/src/error/PhutilErrorHandler.php:273] #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<arcanist>/src/error/PhutilErrorHandler.php:273] #1 <#2> preg_match(string, array) called at [<phorge>/src/applications/spaces/phid/PhabricatorSpacesNamespacePHIDType.php:52] #2 <#2> PhabricatorSpacesNamespacePHIDType::canLoadNamedObject(array) called at [<phorge>/src/applications/spaces/searchfield/PhabricatorSpacesSearchField.php:22] #3 <#2> PhabricatorSpacesSearchField::getValueFromRequest(AphrontRequest, string) called at [<phorge>/src/applications/search/field/PhabricatorSearchField.php:250] #4 <#2> PhabricatorSearchField::readValueFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:139] #5 <#2> PhabricatorApplicationSearchEngine::buildSavedQueryFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:106] #6 <#2> PhabricatorApplicationSearchController::processSearchRequest() called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:91] #7 <#2> PhabricatorApplicationSearchController::processRequest() called at [<phorge>/src/aphront/AphrontController.php:29] #8 <#2> AphrontController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/AphrontController.php:71] #9 <#2> AphrontController::delegateToController(PhabricatorApplicationSearchController) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:50] #10 <#2> PhabricatorApplicationSearchEngine::buildResponse() called at [<phorge>/src/applications/calendar/controller/PhabricatorCalendarEventListController.php:38] #11 <#2> PhabricatorCalendarEventListController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #12 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #13 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #14 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #15 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:204] #16 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
https://we.phorge.it/source/phorge/browse/master/src/applications/search/engine/PhabricatorApplicationSearchEngine.php$745 calls PhabricatorApplicationSearchEngine::readListFromRequest() defined in https://we.phorge.it/source/phorge/browse/master/src/applications/search/engine/PhabricatorApplicationSearchEngine.php$848-875 supposed to return an array of strings:
[2025-05-12 17:10:07] EXCEPTION: (RuntimeException) strpos() expects parameter 1 to be string, array given at [<arcanist>/src/error/PhutilErrorHandler.php:273] #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<arcanist>/src/error/PhutilErrorHandler.php:273] #1 <#2> strpos(array, string) called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php:468] #2 <#2> PhabricatorTypeaheadDatasource::isFunctionToken(array) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:756] #3 <#2> PhabricatorApplicationSearchEngine::readUsersFromRequest(AphrontRequest, string) called at [<phorge>/src/applications/search/query/PhabricatorSearchApplicationSearchEngine.php:29] #4 <#2> PhabricatorSearchApplicationSearchEngine::buildSavedQueryFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:106] #5 <#2> PhabricatorApplicationSearchController::processSearchRequest() called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:91] #6 <#2> PhabricatorApplicationSearchController::processRequest() called at [<phorge>/src/aphront/AphrontController.php:29] #7 <#2> AphrontController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/AphrontController.php:71] #8 <#2> AphrontController::delegateToController(PhabricatorApplicationSearchController) called at [<phorge>/src/applications/search/controller/PhabricatorSearchController.php:96] #9 <#2> PhabricatorSearchController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #10 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #11 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #12 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #13 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:204] #14 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
https://we.phorge.it/source/phorge/browse/master/src/applications/search/engine/PhabricatorApplicationSearchEngine.php$745 calls PhabricatorApplicationSearchEngine::readListFromRequest() defined in https://we.phorge.it/source/phorge/browse/master/src/applications/search/engine/PhabricatorApplicationSearchEngine.php$848-875 supposed to return an array of strings:
[2025-05-12 16:54:18] EXCEPTION: (RuntimeException) strpos() expects parameter 1 to be string, array given at [<arcanist>/src/error/PhutilErrorHandler.php:273] #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<arcanist>/src/error/PhutilErrorHandler.php:273] #1 <#2> strpos(array, string) called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php:468] #2 <#2> PhabricatorTypeaheadDatasource::isFunctionToken(array) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:756] #3 <#2> PhabricatorApplicationSearchEngine::readUsersFromRequest(AphrontRequest, string, array) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:796] #4 <#2> PhabricatorApplicationSearchEngine::readSubscribersFromRequest(AphrontRequest, string) called at [<phorge>/src/applications/search/query/PhabricatorSearchApplicationSearchEngine.php:37] #5 <#2> PhabricatorSearchApplicationSearchEngine::buildSavedQueryFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:106] #6 <#2> PhabricatorApplicationSearchController::processSearchRequest() called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:91] #7 <#2> PhabricatorApplicationSearchController::processRequest() called at [<phorge>/src/aphront/AphrontController.php:29] #8 <#2> AphrontController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/AphrontController.php:71] #9 <#2> AphrontController::delegateToController(PhabricatorApplicationSearchController) called at [<phorge>/src/applications/search/controller/PhabricatorSearchController.php:96] #10 <#2> PhabricatorSearchController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #11 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #12 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #13 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #14 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:204] #15 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
https://we.phorge.it/source/phorge/browse/master/src/applications/search/engine/PhabricatorApplicationSearchEngine.php$822 calls PhabricatorApplicationSearchEngine::readListFromRequest() defined in https://we.phorge.it/source/phorge/browse/master/src/applications/search/engine/PhabricatorApplicationSearchEngine.php$848-875 supposed to return an array of strings:
[2025-05-12 16:54:10] EXCEPTION: (RuntimeException) strncmp() expects parameter 1 to be string, array given at [<arcanist>/src/error/PhutilErrorHandler.php:273] #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<arcanist>/src/error/PhutilErrorHandler.php:273] #1 <#2> strncmp(array, string, integer) called at [<phorge>/src/applications/phid/query/PhabricatorObjectQuery.php:41] #2 <#2> PhabricatorObjectQuery::loadPage() called at [<phorge>/src/infrastructure/query/policy/PhabricatorPolicyAwareQuery.php:251] #3 <#2> PhabricatorPolicyAwareQuery::execute() called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:824] #4 <#2> PhabricatorApplicationSearchEngine::readPHIDsFromRequest(AphrontRequest, string) called at [<phorge>/src/applications/search/query/PhabricatorSearchApplicationSearchEngine.php:41] #5 <#2> PhabricatorSearchApplicationSearchEngine::buildSavedQueryFromRequest(AphrontRequest) called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:106] #6 <#2> PhabricatorApplicationSearchController::processSearchRequest() called at [<phorge>/src/applications/search/controller/PhabricatorApplicationSearchController.php:91] #7 <#2> PhabricatorApplicationSearchController::processRequest() called at [<phorge>/src/aphront/AphrontController.php:29] #8 <#2> AphrontController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/AphrontController.php:71] #9 <#2> AphrontController::delegateToController(PhabricatorApplicationSearchController) called at [<phorge>/src/applications/search/controller/PhabricatorSearchController.php:96] #10 <#2> PhabricatorSearchController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #11 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #12 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #13 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #14 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:204] #15 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]