{"record":{"id":"2002f292c4e7f739","repo":"phacility/phabricator","slug":"specify-one-or-more-repositories-to-correct-reacha","errorCode":null,"errorMessage":"Specify one or more repositories to correct reachability status for.","messagePattern":"Specify one or more repositories to correct reachability status for\\.","errorType":"exception","errorClass":"PhutilArgumentUsageException","httpStatus":null,"severity":"error","filePath":"src/applications/repository/management/PhabricatorRepositoryManagementMarkReachableWorkflow.php","lineNumber":27,"sourceCode":"    $this\n      ->setName('mark-reachable')\n      ->setExamples('**mark-reachable** [__options__] __repository__ ...')\n      ->setSynopsis(\n        pht(\n          'Rebuild \"unreachable\" flags for commits in __repository__.'))\n      ->setArguments(\n        array(\n          array(\n            'name' => 'repos',\n            'wildcard' => true,\n          ),\n        ));\n  }\n\n  public function execute(PhutilArgumentParser $args) {\n    $repos = $this->loadRepositories($args, 'repos');\n    if (!$repos) {\n      throw new PhutilArgumentUsageException(\n        pht(\n          'Specify one or more repositories to correct reachability status '.\n          'for.'));\n    }\n\n    foreach ($repos as $repo) {\n      $this->markReachable($repo);\n    }\n\n    echo tsprintf(\n      \"%s\\n\",\n      pht(\n        'Examined %s commits already in the correct state.',\n        new PhutilNumber($this->untouchedCount)));\n\n    echo tsprintf(\n      \"%s\\n\",\n      pht('Done.'));","sourceCodeStart":9,"sourceCodeEnd":45,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/repository/management/PhabricatorRepositoryManagementMarkReachableWorkflow.php#L9-L45","documentation":"Usage error from `bin/repository mark-reachable`: `loadRepositories($args, 'repos')` returned an empty list. The workflow recomputes unreachable-commit flags per repository, so it needs at least one repository argument before calling `markReachable()`.","triggerScenarios":"Running `./bin/repository mark-reachable` with no arguments; passing identifiers that fail to resolve.","commonSituations":"Operators expect a whole-install reachability sweep and omit targets; the callsign is misspelled so nothing resolves.","solutions":["Pass repository callsigns/IDs: `./bin/repository mark-reachable R1 R2`.","For all repos, enumerate with `./bin/repository list` and pass every callsign.","Verify the identifiers if arguments seem to be dropped."],"exampleFix":"// before\n$ ./bin/repository mark-reachable\n[1174] Specify one or more repositories to correct reachability status for.\n\n// after\n$ ./bin/repository mark-reachable R1","handlingStrategy":"validation","validationCode":"REPOS=\"$(./bin/repository list | awk '{print $1}' | grep -v '^r' | tr '\\n' ' ')\"\n./bin/repository mark-reachable $REPOS   # note: excludes SVN, see [1175]","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pass explicit repository callsigns; the tool never sweeps all repos by itself.","Filter out SVN repositories when scripting across mixed installs."],"tags":["phabricator","phorge","cli","usage-error","missing-argument","reachability"],"backgroundTag":"missing-required-argument","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}