{"record":{"id":"6013a74b7326df6a","repo":"phacility/phabricator","slug":"you-can-not-raise-a-concern-with-this-commit-becau","errorCode":null,"errorMessage":"You can not raise a concern with this commit because you are the commit author. You can only raise concerns with commits you did not author.","messagePattern":"You can not raise a concern with this commit because you are the commit author\\. You can only raise concerns with commits you did not author\\.","errorType":"validation","errorClass":"Exception","httpStatus":null,"severity":"warning","filePath":"src/applications/diffusion/xaction/DiffusionCommitConcernTransaction.php","lineNumber":47,"sourceCode":"  public function getActionName() {\n    return pht('Raised Concern');\n  }\n\n  public function applyInternalEffects($object, $value) {\n    // NOTE: We force the commit directly into \"Concern Raised\" so that we\n    // override a possible \"Needs Verification\" state.\n    $object->setAuditStatus(DiffusionCommitAuditStatus::CONCERN_RAISED);\n  }\n\n  public function applyExternalEffects($object, $value) {\n    $status = PhabricatorAuditRequestStatus::CONCERNED;\n    $actor = $this->getActor();\n    $this->applyAuditorEffect($object, $actor, $value, $status);\n  }\n\n  protected function validateAction($object, PhabricatorUser $viewer) {\n    if ($this->isViewerCommitAuthor($object, $viewer)) {\n      throw new Exception(\n        pht(\n          'You can not raise a concern with this commit because you are '.\n          'the commit author. You can only raise concerns with commits '.\n          'you did not author.'));\n    }\n\n    // Even if you've already raised a concern, you can raise again as long\n    // as the author requested you verify.\n    if ($this->isViewerFullyRejected($object, $viewer)) {\n      if (!$object->isAuditStatusNeedsVerification()) {\n        throw new Exception(\n          pht(\n            'You can not raise a concern with this commit because you have '.\n            'already raised a concern with it.'));\n      }\n    }\n  }\n","sourceCodeStart":29,"sourceCodeEnd":65,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/diffusion/xaction/DiffusionCommitConcernTransaction.php#L29-L65","documentation":"DiffusionCommitConcernTransaction::validateAction() always forbids raising a concern on your own commit - unlike accept, there is no config override. The rule keeps audit pressure independent: concerns must come from someone other than the author.","triggerScenarios":"The commit author selects 'Raise Concern' on their own commit; a bot authored a bad commit and then tries to flag it using the same identity.","commonSituations":"An author realizes their own commit is broken and wants to flag it for tracking; single-maintainer installs where author and auditor are the same person.","solutions":["Ask another user (or a separate auditor bot account) to raise the concern","Track your own follow-ups with a Maniphest task or a commit comment instead of the concern action","If self-flagging is routine, create a dedicated auditor account for that purpose"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if ($this->isViewerCommitAuthor($object, $viewer)) {\n  // hide/disable the Raise Concern action for this actor\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use separate authoring and auditing identities in automation","Document the rule: concerns come from non-authors; authors track their own fixes with tasks or comments"],"tags":["phabricator","audit","diffusion","policy","self-review"],"backgroundTag":"self-review-forbidden","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}