{"record":{"id":"0c4e41afa08a945d","repo":"phacility/phabricator","slug":"no-such-buildable-s-0c4e41","errorCode":null,"errorMessage":"No such buildable \"%s\"!","messagePattern":"No such buildable \"(.+?)\"!","errorType":"console","errorClass":"PhutilArgumentUsageException","httpStatus":null,"severity":"warning","filePath":"src/applications/harbormaster/management/HarbormasterManagementUpdateWorkflow.php","lineNumber":54,"sourceCode":"\n  public function execute(PhutilArgumentParser $args) {\n    $viewer = $this->getViewer();\n\n    $force_update = $args->getArg('force');\n\n    $names = $args->getArg('buildable');\n    if (count($names) != 1) {\n      throw new PhutilArgumentUsageException(\n        pht('Specify exactly one buildable, by object name.'));\n    }\n\n    $buildable = id(new PhabricatorObjectQuery())\n      ->setViewer($viewer)\n      ->withNames($names)\n      ->executeOne();\n\n    if (!$buildable) {\n      throw new PhutilArgumentUsageException(\n        pht('No such buildable \"%s\"!', head($names)));\n    }\n\n    if (!($buildable instanceof HarbormasterBuildable)) {\n      throw new PhutilArgumentUsageException(\n        pht('Object \"%s\" is not a Harbormaster Buildable!', head($names)));\n    }\n\n    // Reload the buildable directly to get builds.\n    $buildable = id(new HarbormasterBuildableQuery())\n      ->setViewer($viewer)\n      ->withIDs(array($buildable->getID()))\n      ->needBuilds(true)\n      ->executeOne();\n\n    $builds = $buildable->getBuilds();\n    $builds = mpull($builds, null, 'getID');\n","sourceCodeStart":36,"sourceCodeEnd":72,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/harbormaster/management/HarbormasterManagementUpdateWorkflow.php#L36-L72","documentation":"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.","triggerScenarios":"Running 'bin/harbormaster update B9999' where no buildable 9999 exists; a typo in the monogram; a PHID belonging to another instance.","commonSituations":"Pointing the command at the wrong environment/instance; a race where automation runs before the buildable is created; transcription errors in runbooks.","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"],"exampleFix":"# before\n$ bin/harbormaster update B9999\n# after\n$ bin/harbormaster update B123","handlingStrategy":"validation","validationCode":"$buildable = id(new PhabricatorObjectQuery())\n  ->setViewer($viewer)\n  ->withNames(array($name))\n  ->executeOne();\nif (!$buildable) {\n  // the name does not resolve; fix it before running update\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Confirm the monogram exists (UI or harbormaster.buildable.search) before scripting updates","Watch for races where automation runs before the buildable is created"],"tags":["harbormaster","phabricator","cli","not-found","buildable"],"backgroundTag":"entity-not-found","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}