phacility/phabricator · error · PhutilArgumentUsageException
Repository "%s" is not a cluster repository: it is not bound
Error message
Repository "%s" is not a cluster repository: it is not bound to an Almanac service.
What it means
Error "Repository "%s" is not a cluster repository: it is not bound to an Almanac service." thrown in phacility/phabricator.
Source
Thrown at src/applications/repository/management/PhabricatorRepositoryManagementThawWorkflow.php:210
foreach ($devices as $device) {
foreach ($repositories as $repository) {
$repository_phid = $repository->getPHID();
$write_lock = PhabricatorRepositoryWorkingCopyVersion::getWriteLock(
$repository_phid);
echo tsprintf(
"%s\n",
pht(
'Waiting to acquire write lock for "%s"...',
$repository->getDisplayName()));
$write_lock->lock(phutil_units('5 minutes in seconds'));
try {
$service = $repository->loadAlmanacService();
if (!$service) {
throw new PhutilArgumentUsageException(
pht(
'Repository "%s" is not a cluster repository: it is not '.
'bound to an Almanac service.',
$repository->getDisplayName()));
}
if ($promote) {
// You can only promote active devices. (You may demote active or
// inactive devices.)
$bindings = $service->getActiveBindings();
$bindings = mpull($bindings, null, 'getDevicePHID');
if (empty($bindings[$device->getPHID()])) {
throw new PhutilArgumentUsageException(
pht(
'Repository "%s" has no active binding to device "%s". '.
'Only actively bound devices can be promoted.',
$repository->getDisplayName(),
$device->getName()));View on GitHub (pinned to 5720a38cfe)
When it happens
Trigger: Thrown at src/applications/repository/management/PhabricatorRepositoryManagementThawWorkflow.php:210 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/5ca0a7bdf22ae7b7.
Report an issue: GitHub.