{"record":{"id":"91173ad6f8fc81f4","repo":"phacility/phabricator","slug":"package-key-s-is-not-valid-package-keys-are-re","errorCode":null,"errorMessage":"Package key \"%s\" is not valid: package keys are required.","messagePattern":"Package key \"(.+?)\" is not valid: package keys are required\\.","errorType":"validation","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"src/applications/packages/storage/PhabricatorPackagesPackage.php","lineNumber":104,"sourceCode":"          'Package name \"%s\" is not valid: package names are required.',\n          $value));\n    }\n\n    $max_length = 64;\n    if ($length > $max_length) {\n      throw new Exception(\n        pht(\n          'Package name \"%s\" is not valid: package names must not be '.\n          'more than %s characters long.',\n          $value,\n          new PhutilNumber($max_length)));\n    }\n  }\n\n  public static function assertValidPackageKey($value) {\n    $length = phutil_utf8_strlen($value);\n    if (!$length) {\n      throw new Exception(\n        pht(\n          'Package key \"%s\" is not valid: package keys are required.',\n          $value));\n    }\n\n    $max_length = 64;\n    if ($length > $max_length) {\n      throw new Exception(\n        pht(\n          'Package key \"%s\" is not valid: package keys must not be '.\n          'more than %s characters long.',\n          $value,\n          new PhutilNumber($max_length)));\n    }\n\n    if (!preg_match('/^[a-z]+\\z/', $value)) {\n      throw new Exception(\n        pht(","sourceCodeStart":86,"sourceCodeEnd":122,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/packages/storage/PhabricatorPackagesPackage.php#L86-L122","documentation":"Error \"Package key \"%s\" is not valid: package keys are required.\" thrown in phacility/phabricator.","triggerScenarios":"Thrown at src/applications/packages/storage/PhabricatorPackagesPackage.php:104 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}