{"record":{"id":"3acf05da08885e09","repo":"phacility/phabricator","slug":"project-colors-must-have-unique-keys-but-two-icon","errorCode":null,"errorMessage":"Project colors must have unique keys, but two icons share the same key (\"%s\").","messagePattern":"Project colors must have unique keys, but two icons share the same key \\(\"(.+?)\"\\)\\.","errorType":"validation","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"src/applications/project/icon/PhabricatorProjectIconSet.php","lineNumber":475,"sourceCode":"        ));\n\n      $key = $value['key'];\n      if (!isset($available_keys[$key])) {\n        throw new Exception(\n          pht(\n            'Color key \"%s\" is not a valid color key. The supported color '.\n            'keys are: %s.',\n            $key,\n            implode(', ', $available_keys)));\n      }\n    }\n\n    $default = null;\n    $keys = array();\n    foreach ($config as $idx => $value) {\n      $key = $value['key'];\n      if (isset($keys[$key])) {\n        throw new Exception(\n          pht(\n            'Project colors must have unique keys, but two icons share the '.\n            'same key (\"%s\").',\n            $key));\n      } else {\n        $keys[$key] = true;\n      }\n\n      if (idx($value, 'default')) {\n        if ($default === null) {\n          $default = $value;\n        } else {\n          $original_key = $default['key'];\n          throw new Exception(\n            pht(\n              'Two different colors (\"%s\", \"%s\") are marked as the default '.\n              'color. Only one color may be marked as the default.',\n              $key,","sourceCodeStart":457,"sourceCodeEnd":493,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/project/icon/PhabricatorProjectIconSet.php#L457-L493","documentation":"Error \"Project colors must have unique keys, but two icons share the same key (\"%s\").\" thrown in phacility/phabricator.","triggerScenarios":"Thrown at src/applications/project/icon/PhabricatorProjectIconSet.php:475 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"}