phacility/phabricator · warning · PhutilArgumentUsageException
No such buildable "%s"!
Error message
No such buildable "%s"!
What it means
Thrown by 'bin/harbormaster update' when the single supplied object name does not resolve through PhabricatorObjectQuery. Name resolution covers monograms (like B123) and PHIDs; a miss means no object in this Phabricator instance matches the name, so the update cannot proceed.
Source
Thrown at src/applications/harbormaster/management/HarbormasterManagementUpdateWorkflow.php:54
public function execute(PhutilArgumentParser $args) {
$viewer = $this->getViewer();
$force_update = $args->getArg('force');
$names = $args->getArg('buildable');
if (count($names) != 1) {
throw new PhutilArgumentUsageException(
pht('Specify exactly one buildable, by object name.'));
}
$buildable = id(new PhabricatorObjectQuery())
->setViewer($viewer)
->withNames($names)
->executeOne();
if (!$buildable) {
throw new PhutilArgumentUsageException(
pht('No such buildable "%s"!', head($names)));
}
if (!($buildable instanceof HarbormasterBuildable)) {
throw new PhutilArgumentUsageException(
pht('Object "%s" is not a Harbormaster Buildable!', head($names)));
}
// Reload the buildable directly to get builds.
$buildable = id(new HarbormasterBuildableQuery())
->setViewer($viewer)
->withIDs(array($buildable->getID()))
->needBuilds(true)
->executeOne();
$builds = $buildable->getBuilds();
$builds = mpull($builds, null, 'getID');
View on GitHub (pinned to 5720a38cfe)
Solutions
- Verify the monogram in the web UI or via harbormaster.buildable.search
- If using a PHID, confirm it starts with PHID-HMBB- and belongs to this instance
- If the buildable is created asynchronously, retry after it exists
Example fix
# before $ bin/harbormaster update B9999 # after $ bin/harbormaster update B123
Defensive patterns
Strategy: validation
Validate before calling
$buildable = id(new PhabricatorObjectQuery())
->setViewer($viewer)
->withNames(array($name))
->executeOne();
if (!$buildable) {
// the name does not resolve; fix it before running update
} Prevention
- Confirm the monogram exists (UI or harbormaster.buildable.search) before scripting updates
- Watch for races where automation runs before the buildable is created
When it happens
Trigger: Running 'bin/harbormaster update B9999' where no buildable 9999 exists; a typo in the monogram; a PHID belonging to another instance.
Common situations: Pointing the command at the wrong environment/instance; a race where automation runs before the buildable is created; transcription errors in runbooks.
Related errors
- Object "%s" is not a HarbormasterBuildable (it is a "%s"). N
- Unable to load build log "%s".
- Specify exactly one buildable, by object name.
- Object "%s" is not a Harbormaster Buildable!
- The specified buildable does not have a build with ID "%s".
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/0c4e41afa08a945d.
Report an issue: GitHub.