{"record":{"id":"b797f0536fb8b69a","repo":"phacility/phabricator","slug":"blueprint-s-could-not-be-loaded-try-a-blueprin","errorCode":null,"errorMessage":"Blueprint \"%s\" could not be loaded. Try a blueprint ID or PHID.","messagePattern":"Blueprint \"(.+?)\" could not be loaded\\. Try a blueprint ID or PHID\\.","errorType":"console","errorClass":"PhutilArgumentUsageException","httpStatus":null,"severity":"error","filePath":"src/applications/drydock/management/DrydockManagementLeaseWorkflow.php","lineNumber":286,"sourceCode":"    }\n  }\n\n  private function getBlueprintFilterMap(array $identifiers) {\n    $viewer = $this->getViewer();\n\n    $query = id(new DrydockBlueprintQuery())\n      ->setViewer($viewer)\n      ->withIdentifiers($identifiers);\n\n    $blueprints = $query->execute();\n    $blueprints = mpull($blueprints, null, 'getPHID');\n\n    $map = $query->getIdentifierMap();\n\n    $seen = array();\n    foreach ($identifiers as $identifier) {\n      if (!isset($map[$identifier])) {\n        throw new PhutilArgumentUsageException(\n          pht(\n            'Blueprint \"%s\" could not be loaded. Try a blueprint ID or '.\n            'PHID.',\n            $identifier));\n      }\n\n      $blueprint = $map[$identifier];\n\n      $blueprint_phid = $blueprint->getPHID();\n      if (isset($seen[$blueprint_phid])) {\n        throw new PhutilArgumentUsageException(\n          pht(\n            'Blueprint \"%s\" is specified more than once (as \"%s\" and \"%s\").',\n            $blueprint->getBlueprintName(),\n            $seen[$blueprint_phid],\n            $identifier));\n      }\n","sourceCodeStart":268,"sourceCodeEnd":304,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/drydock/management/DrydockManagementLeaseWorkflow.php#L268-L304","documentation":"A PhutilArgumentUsageException from `bin/drydock lease --blueprint <identifier>` when an identifier cannot be resolved by DrydockBlueprintQuery::withIdentifiers(). Acceptable identifiers are numeric blueprint IDs or blueprint PHIDs; anything else (name, class, callsign) fails here. It can also fire when the blueprint exists but is not visible to the management workflow's viewer.","triggerScenarios":"`bin/drydock lease --type host --blueprint my-host-blueprint` (a name instead of ID/PHID), or `--blueprint 99` where blueprint 99 does not exist or is invisible.","commonSituations":"Assuming blueprints are addressable by name like repositories are by callsign; stale IDs after blueprints were deleted; copy-pasting the blueprint PHID with a typo or truncation.","solutions":["Open the Drydock Blueprints console and use the numeric ID from the URL (e.g. /drydock/blueprint/view/3/ → 3) or the PHID.","If it should exist, verify the blueprint was not deleted or disabled-out of visibility and re-run.","Pass each identifier exactly once and in full (see the duplicate check in error 556)."],"exampleFix":"# before\nbin/drydock lease --type host --blueprint my-host-blueprint\n\n# after\nbin/drydock lease --type host --blueprint 3\n# or\nbin/drydock lease --type host --blueprint PHID-DRYB-xxxxxxxx","handlingStrategy":"validation","validationCode":"$query = id(new DrydockBlueprintQuery())\n  ->setViewer($viewer)\n  ->withIdentifiers($identifiers);\n$blueprints = $query->execute();\n$map = $query->getIdentifierMap();\nforeach ($identifiers as $identifier) {\n  if (!isset($map[$identifier])) {\n    throw new InvalidArgumentException(\n      \"Unresolvable blueprint identifier: {$identifier}\");\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use numeric blueprint IDs taken directly from the blueprint URL, or full PHIDs copied verbatim.","Blueprints are not addressable by name — do not reuse repository-callsign habits here."],"tags":["drydock","phabricator","cli","blueprint","not-found"],"backgroundTag":"entity-not-found","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}