phacility/phabricator · error · PhutilArgumentUsageException

Repository "%s" has no active binding to device "%s". Only a

Error message

Repository "%s" has no active binding to device "%s". Only actively bound devices can be promoted.

What it means

Error "Repository "%s" has no active binding to device "%s". Only actively bound devices can be promoted." thrown in phacility/phabricator.

Source

Thrown at src/applications/repository/management/PhabricatorRepositoryManagementThawWorkflow.php:223

        $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()));
            }

            $versions = PhabricatorRepositoryWorkingCopyVersion::loadVersions(
              $repository->getPHID());
            $versions = mpull($versions, null, 'getDevicePHID');

            // Before we promote, make sure there are no outstanding versions
            // on devices with inactive bindings. If there are, you need to
            // demote these first.
            $inactive = array();
            foreach ($versions as $device_phid => $version) {
              if (isset($bindings[$device_phid])) {
                continue;

View on GitHub (pinned to 5720a38cfe)

When it happens

Trigger: Thrown at src/applications/repository/management/PhabricatorRepositoryManagementThawWorkflow.php:223 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/5ab2dabbb004d6d0. Report an issue: GitHub.