{"record":{"id":"47359b34d1bab5df","repo":"phacility/phabricator","slug":"no-repository-s-exists","errorCode":null,"errorMessage":"No repository \"%s\" exists!","messagePattern":"No repository \"(.+?)\" exists!","errorType":"exception","errorClass":"PhutilArgumentUsageException","httpStatus":null,"severity":"error","filePath":"src/applications/audit/management/PhabricatorAuditManagementDeleteWorkflow.php","lineNumber":283,"sourceCode":"    return $list;\n  }\n\n  private function loadRepos($identifiers) {\n    $identifiers = $this->parseList($identifiers);\n    if (!$identifiers) {\n      return null;\n    }\n\n    $query = id(new PhabricatorRepositoryQuery())\n      ->setViewer($this->getViewer())\n      ->withIdentifiers($identifiers);\n\n    $repos = $query->execute();\n\n    $map = $query->getIdentifierMap();\n    foreach ($identifiers as $identifier) {\n      if (empty($map[$identifier])) {\n        throw new PhutilArgumentUsageException(\n          pht('No repository \"%s\" exists!', $identifier));\n      }\n    }\n\n    return $repos;\n  }\n\n  private function loadDate($date) {\n    if (!$date) {\n      return null;\n    }\n\n    $epoch = strtotime($date);\n    if (!$epoch || $epoch < 1) {\n      throw new PhutilArgumentUsageException(\n        pht(\n          'Unable to parse date \"%s\". Use a format like \"%s\".',\n          $date,","sourceCodeStart":265,"sourceCodeEnd":301,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/audit/management/PhabricatorAuditManagementDeleteWorkflow.php#L265-L301","documentation":"Thrown by the audit delete workflow's loadRepos() when an identifier passed via --repositories does not resolve through PhabricatorRepositoryQuery's identifier map. Identifiers may be callsigns or PHIDs; any unresolved one aborts the run before deletion.","triggerScenarios":"--repositories ABCD where the callsign is wrong/renamed; passing a PHID with a typo; passing a monogram like rABCD in a version where the plain callsign is expected.","commonSituations":"Callsign changes after a repository was edited; scripts carrying stale callsigns; ambiguity between repository ID, callsign, and PHID in documentation.","solutions":["List repositories and their callsigns with bin/repository list to get the exact identifier","Use the repository PHID (PHID-REPO-...) for scripting robustness, or re-check the callsign after renames","Drop nonexistent repositories from --repositories if their data no longer matters"],"exampleFix":"# before\n$ bin/audit delete --repositories ABCD\n# after (verify first)\n$ bin/repository list\n$ bin/audit delete --repositories PHID-REPO-xxxxxxxx --dry-run","handlingStrategy":"validation","validationCode":"$query = id(new PhabricatorRepositoryQuery())\n  ->setViewer($viewer)\n  ->withIdentifiers($identifiers);\n$query->execute();\nforeach ($identifiers as $id) {\n  if (empty($query->getIdentifierMap()[$id])) {\n    throw new InvalidArgumentException(\"Unknown repository '{$id}'\");\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Fetch repository callsigns/PHIDs programmatically (bin/repository list) before scripting against them","Prefer PHIDs in scripts; callsigns can be renamed"],"tags":["audit","cli","repository-lookup","phabricator"],"backgroundTag":"repository-not-found","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}