{"record":{"id":"1909cf2e82aadee7","repo":"phacility/phabricator","slug":"the-specified-buildable-does-not-have-a-build-with","errorCode":null,"errorMessage":"The specified buildable does not have a build with ID \"%s\".","messagePattern":"The specified buildable does not have a build with ID \"(.+?)\"\\.","errorType":"console","errorClass":"PhutilArgumentUsageException","httpStatus":null,"severity":"warning","filePath":"src/applications/harbormaster/management/HarbormasterManagementUpdateWorkflow.php","lineNumber":77,"sourceCode":"      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\n    $build_id = $args->getArg('build');\n    if ($build_id) {\n      $builds = array_select_keys($builds, array($build_id));\n      if (!$builds) {\n        throw new PhutilArgumentUsageException(\n          pht(\n            'The specified buildable does not have a build with ID \"%s\".',\n            $build_id));\n      }\n    }\n\n    $console = PhutilConsole::getConsole();\n\n    if (!$args->getArg('background')) {\n      PhabricatorWorker::setRunAllTasksInProcess(true);\n    }\n\n    foreach ($builds as $build) {\n      $console->writeOut(\n        \"%s\\n\",\n        pht(\n          'Updating build %d of buildable %s...',\n          $build->getID(),","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/harbormaster/management/HarbormasterManagementUpdateWorkflow.php#L59-L95","documentation":"Thrown by 'bin/harbormaster update' when --build restricts the update to one build of the buildable. The workflow reloads the buildable with needBuilds(true) and keys its builds by ID; if the requested build ID is not among that buildable's builds, the selection is empty and this usage exception is raised.","triggerScenarios":"Running 'bin/harbormaster update B123 --build 77' where build 77 belongs to a different buildable (build IDs are global, but must belong to the named buildable); the build was deleted or the buildable has no builds at all.","commonSituations":"Copying a build ID from a different build page; automation pairing a buildable name with a stale build ID after re-runs.","solutions":["Open the buildable page and copy a build ID that is actually listed under it","Drop --build to update all builds of the buildable","Verify the pairing with harbormaster.build.search filtered by buildablePHID"],"exampleFix":"# before\n$ bin/harbormaster update B123 --build 77   # build 77 is on another buildable\n# after\n$ bin/harbormaster update B123 --build 42   # build 42 belongs to B123","handlingStrategy":"validation","validationCode":"$buildable = id(new HarbormasterBuildableQuery())\n  ->setViewer($viewer)\n  ->withIDs(array($buildable_id))\n  ->needBuilds(true)\n  ->executeOne();\n$builds = mpull($buildable->getBuilds(), null, 'getID');\nif (!isset($builds[$build_id])) {\n  // this buildable has no such build; fix the pairing before update\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pair --build IDs only with buildables that list them on their page","In automation, resolve builds via harbormaster.build.search filtered by buildablePHID"],"tags":["harbormaster","phabricator","cli","not-found","build"],"backgroundTag":"entity-not-found","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}