phacility/phabricator · error · PhutilAggregateException

Unable to read device private key while attempting to make a

Error message

Unable to read device private key while attempting to make authenticated method call within the cluster. Use `%s` to register keys for this device. Exception: %s

What it means

Error "Unable to read device private key while attempting to make authenticated method call within the cluster. Use `%s` to register keys for this device. Exception: %s" thrown in phacility/phabricator.

Source

Thrown at src/applications/repository/storage/PhabricatorRepository.php:2224

      try {
        $public_key = Filesystem::readFile($public_path);
      } catch (Exception $ex) {
        throw new PhutilAggregateException(
          pht(
            'Unable to read device public key while attempting to make '.
            'authenticated method call within the cluster. '.
            'Use `%s` to register keys for this device. Exception: %s',
            'bin/almanac register',
            $ex->getMessage()),
          array($ex));
      }

      $private_path = AlmanacKeys::getKeyPath('device.key');
      try {
        $private_key = Filesystem::readFile($private_path);
        $private_key = new PhutilOpaqueEnvelope($private_key);
      } catch (Exception $ex) {
        throw new PhutilAggregateException(
          pht(
            'Unable to read device private key while attempting to make '.
            'authenticated method call within the cluster. '.
            'Use `%s` to register keys for this device. Exception: %s',
            'bin/almanac register',
            $ex->getMessage()),
          array($ex));
      }

      $client->setSigningKeys($public_key, $private_key);
    } else {
      // If the caller is a normal user, we generate or retrieve a cluster
      // API token.

      $token = PhabricatorConduitToken::loadClusterTokenForUser($viewer);
      if ($token) {
        $client->setConduitToken($token->getToken());
      }

View on GitHub (pinned to 5720a38cfe)

When it happens

Trigger: Thrown at src/applications/repository/storage/PhabricatorRepository.php:2224 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21). Data as JSON: /api/errors/182e5c5c69be38ff. Report an issue: GitHub.