{"record":{"id":"fd1a0c643deec5bc","repo":"phacility/phabricator","slug":"specify-a-query-with-query","errorCode":null,"errorMessage":"Specify a query with --query.","messagePattern":"Specify a query with --query\\.","errorType":"console","errorClass":"PhutilArgumentUsageException","httpStatus":null,"severity":"warning","filePath":"src/applications/search/management/PhabricatorSearchManagementQueryWorkflow.php","lineNumber":25,"sourceCode":"    $this\n      ->setName('query')\n      ->setSynopsis(\n        pht('Run a search query. Intended for debugging and development.'))\n      ->setArguments(\n        array(\n          array(\n            'name' => 'query',\n            'param' => 'query',\n            'help' => pht('Raw query to execute.'),\n          ),\n        ));\n  }\n\n  public function execute(PhutilArgumentParser $args) {\n    $viewer = $this->getViewer();\n    $raw_query = $args->getArg('query');\n    if (!strlen($raw_query)) {\n      throw new PhutilArgumentUsageException(\n        pht('Specify a query with --query.'));\n    }\n\n    $engine = id(new PhabricatorSearchApplicationSearchEngine())\n      ->setViewer($viewer);\n\n    $saved = $engine->newSavedQuery();\n    $saved->setParameter('query', $raw_query);\n\n    $query = $engine->buildQueryFromSavedQuery($saved);\n    $pager = $engine->newPagerForSavedQuery($saved);\n\n    $results = $engine->executeQuery($query, $pager);\n    if ($results) {\n      foreach ($results as $result) {\n        echo tsprintf(\n          \"%s\\t%s\\n\",\n          $result->getPHID(),","sourceCodeStart":7,"sourceCodeEnd":43,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/search/management/PhabricatorSearchManagementQueryWorkflow.php#L7-L43","documentation":"`bin/search query` requires a non-empty --query string (checked with strlen). The raw string is placed into a PhabricatorSearchApplicationSearchEngine saved query and executed against the configured search service, so an empty query has no defined behavior and is rejected up front.","triggerScenarios":"`bin/search query` with no --query, or `--query ''` / `--query \"$VAR\"` where $VAR expanded empty.","commonSituations":"Probing the CLI; scripts passing an unset variable; quoting that collapses the value to empty.","solutions":["Pass a raw query string: `bin/search query --query daemon`","In scripts, guard the variable is non-empty before invoking","Use it to debug search quality/bin/search query --query daemon","Run `bin/search help query` for expected parameters"],"exampleFix":"# before\nbin/search query\n\n# after\nbin/search query --query daemon","handlingStrategy":"validation","validationCode":"if (!phutil_nonempty_string($rawQuery)) {\n  // refuse before invoking: bin/search query requires a non-empty --query\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Guard script variables for emptiness before passing them as --query","Use `bin/search query --query <term>` as a smoke test after backend changes","Quote the query so shell expansion cannot blank it"],"tags":["cli","bin-search","usage-error","missing-argument"],"backgroundTag":"missing-required-argument","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}