phacility/phabricator · error · PhutilArgumentUsageException
No repository "%s" exists!
Error message
No repository "%s" exists!
What it means
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.
Source
Thrown at src/applications/audit/management/PhabricatorAuditManagementDeleteWorkflow.php:283
return $list;
}
private function loadRepos($identifiers) {
$identifiers = $this->parseList($identifiers);
if (!$identifiers) {
return null;
}
$query = id(new PhabricatorRepositoryQuery())
->setViewer($this->getViewer())
->withIdentifiers($identifiers);
$repos = $query->execute();
$map = $query->getIdentifierMap();
foreach ($identifiers as $identifier) {
if (empty($map[$identifier])) {
throw new PhutilArgumentUsageException(
pht('No repository "%s" exists!', $identifier));
}
}
return $repos;
}
private function loadDate($date) {
if (!$date) {
return null;
}
$epoch = strtotime($date);
if (!$epoch || $epoch < 1) {
throw new PhutilArgumentUsageException(
pht(
'Unable to parse date "%s". Use a format like "%s".',
$date,View on GitHub (pinned to 5720a38cfe)
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
Example fix
# before $ bin/audit delete --repositories ABCD # after (verify first) $ bin/repository list $ bin/audit delete --repositories PHID-REPO-xxxxxxxx --dry-run
Defensive patterns
Strategy: validation
Validate before calling
$query = id(new PhabricatorRepositoryQuery())
->setViewer($viewer)
->withIdentifiers($identifiers);
$query->execute();
foreach ($identifiers as $id) {
if (empty($query->getIdentifierMap()[$id])) {
throw new InvalidArgumentException("Unknown repository '{$id}'");
}
} Prevention
- Fetch repository callsigns/PHIDs programmatically (bin/repository list) before scripting against them
- Prefer PHIDs in scripts; callsigns can be renamed
When it happens
Trigger: --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.
Common situations: Callsign changes after a repository was edited; scripts carrying stale callsigns; ambiguity between repository ID, callsign, and PHID in documentation.
Related errors
- Specified maximum date must come after specified minimum dat
- No such user with username "%s"!
- Request parameter "%s" is not formatted properly. Expected a
- Request parameter "%s" is not formatted properly. Expected a
- Invalid Request (CSRF)
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/47359b34d1bab5df.
Report an issue: GitHub.