{"record":{"id":"26690db0186dc0f3","repo":"phacility/phabricator","slug":"configuration-must-be-a-list-of-project-color-spec","errorCode":null,"errorMessage":"Configuration must be a list of project color specifications.","messagePattern":"Configuration must be a list of project color specifications\\.","errorType":"validation","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"src/applications/project/icon/PhabricatorProjectIconSet.php","lineNumber":436,"sourceCode":"      ),\n      array(\n        'key' => PHUITagView::COLOR_PINK,\n        'name' => pht('Pink'),\n      ),\n      array(\n        'key' => PHUITagView::COLOR_GREY,\n        'name' => pht('Grey'),\n      ),\n      array(\n        'key' => PHUITagView::COLOR_CHECKERED,\n        'name' => pht('Checkered'),\n      ),\n    );\n  }\n\n  public static function validateColorConfiguration($config) {\n    if (!is_array($config)) {\n      throw new Exception(\n        pht('Configuration must be a list of project color specifications.'));\n    }\n\n    $available_keys = self::getAvailableColorKeys();\n    $available_keys = array_fuse($available_keys);\n\n    foreach ($config as $idx => $value) {\n      if (!is_array($value)) {\n        throw new Exception(\n          pht(\n            'Value for index \"%s\" should be a dictionary.',\n            $idx));\n      }\n\n      PhutilTypeSpec::checkMap(\n        $value,\n        array(\n          'key' => 'string',","sourceCodeStart":418,"sourceCodeEnd":454,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/project/icon/PhabricatorProjectIconSet.php#L418-L454","documentation":"Error \"Configuration must be a list of project color specifications.\" thrown in phacility/phabricator.","triggerScenarios":"Thrown at src/applications/project/icon/PhabricatorProjectIconSet.php:436 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"}