{"record":{"id":"02fa18e7c677bf6b","repo":"phacility/phabricator","slug":"unable-to-load-inline-d","errorCode":null,"errorMessage":"Unable to load inline \"%d\".","messagePattern":"Unable to load inline \"(.+?)\"\\.","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"src/applications/differential/controller/DifferentialInlineCommentEditController.php","lineNumber":74,"sourceCode":"          'Changeset ID \"%s\" is part of diff ID \"%s\", but that diff '.\n          'is attached to revision \"%s\", not revision \"%s\".',\n          $changeset_id,\n          $diff->getID(),\n          $diff->getRevisionID(),\n          $revision->getID()));\n    }\n\n    return id(new DifferentialInlineComment())\n      ->setRevision($revision)\n      ->setChangesetID($changeset_id);\n  }\n\n  protected function loadCommentForDone($id) {\n    $viewer = $this->getViewer();\n\n    $inline = $this->loadCommentByID($id);\n    if (!$inline) {\n      throw new Exception(pht('Unable to load inline \"%d\".', $id));\n    }\n\n    $changeset = id(new DifferentialChangesetQuery())\n      ->setViewer($viewer)\n      ->withIDs(array($inline->getChangesetID()))\n      ->executeOne();\n    if (!$changeset) {\n      throw new Exception(pht('Unable to load changeset.'));\n    }\n\n    $diff = id(new DifferentialDiffQuery())\n      ->setViewer($viewer)\n      ->withIDs(array($changeset->getDiffID()))\n      ->executeOne();\n    if (!$diff) {\n      throw new Exception(pht('Unable to load diff.'));\n    }\n","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/differential/controller/DifferentialInlineCommentEditController.php#L56-L92","documentation":"loadCommentForDone() loads an inline comment by ID for the 'Done' action. A null result — no such inline visible to the user — throws 'Unable to load inline'. The ID came from a stale page or a comment that no longer exists.","triggerScenarios":"Marking an inline comment 'Done' with a stale or deleted comment id, or with an id the viewer cannot see (drafts of other users, policy-hidden comments).","commonSituations":"Clicking 'Done' on a page rendered before the comment was deleted or before the diff was updated; stale dialog state after a failed request.","solutions":["Reload the revision view and retry the 'Done' action.","Verify the comment still exists on the current diff.","Discard stale dialog state after failed requests instead of resubmitting."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  // perform the 'Done' action on the inline comment\n} catch (Exception $ex) {\n  if (preg_match('/Unable to load inline/', $ex->getMessage())) {\n    // comment gone: refresh the revision view and drop stale dialog state\n  } else {\n    throw $ex;\n  }\n}","preventionTips":["Retry 'Done' from a freshly loaded revision view.","Do not replay captured inline-comment requests.","Clear stale dialog state after failed requests."],"tags":["phabricator","differential","inline-comment","not-found"],"backgroundTag":"resource-not-found","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}