{"record":{"id":"4451a90db2a6849f","repo":"phacility/phabricator","slug":"method-s-belongs-to-application-s-which-is","errorCode":null,"errorMessage":"Method '%s' belongs to application '%s', which is not installed.","messagePattern":"Method '(.+?)' belongs to application '(.+?)', which is not installed\\.","errorType":"exception","errorClass":"ConduitApplicationNotInstalledException","httpStatus":null,"severity":"error","filePath":"src/applications/conduit/call/ConduitCall.php","lineNumber":144,"sourceCode":"              'API method.'));\n        }\n      }\n    }\n\n    return $this->handler->executeMethod($this->request);\n  }\n\n  protected function buildMethodHandler($method_name) {\n    $method = ConduitAPIMethod::getConduitMethod($method_name);\n\n    if (!$method) {\n      throw new ConduitMethodDoesNotExistException($method_name);\n    }\n\n    $application = $method->getApplication();\n    if ($application && !$application->isInstalled()) {\n      $app_name = $application->getName();\n      throw new ConduitApplicationNotInstalledException($method, $app_name);\n    }\n\n    return $method;\n  }\n\n  public function getMethodImplementation() {\n    return $this->handler;\n  }\n\n\n}\n","sourceCodeStart":126,"sourceCodeEnd":156,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/conduit/call/ConduitCall.php#L126-L156","documentation":"Thrown by ConduitCall::buildMethodHandler() when the method class exists but $method->getApplication() returns an application whose isInstalled() is false. Phabricator deliberately hides Conduit methods of uninstalled applications, so the call is rejected before execution. The message names both the method and the owning application.","triggerScenarios":"Calling maniphest.* methods after an admin uninstalled Maniphest in /applications/; hitting phriction.* or differential.* endpoints on an install where that app was disabled; fresh installs where the needed application ships uninstalled.","commonSituations":"An administrator disables an application to declutter the UI and unknowingly breaks CI scripts that call its Conduit methods; integrations written against a default install fail on hardened installs where optional apps were removed.","solutions":["Go to Applications (admin) in the web UI, find the application named in the error, and install/enable it, then retry the call.","If the application must stay uninstalled, stop calling its methods and migrate the workflow to another application's API or remove the integration.","Verify after enabling that the method now appears in the /conduit/ method list for that install."],"exampleFix":"# before (Maniphest uninstalled, call fails)\n$ arc call-conduit maniphest.task.query\n# after: install Maniphest via Admin -> Applications, then\n$ arc call-conduit maniphest.task.query","handlingStrategy":"validation","validationCode":"// Before calling, confirm the method's application is installed.\n$method = ConduitAPIMethod::getConduitMethod($method_name);\nif ($method) {\n  $app = $method->getApplication();\n  if ($app && !$app->isInstalled()) {\n    // Abort early with a clear message instead of calling.\n  }\n}","typeGuard":null,"tryCatchPattern":"try {\n  $result = id(new ConduitCall($method, $params))\n    ->setUser($viewer)\n    ->execute();\n} catch (ConduitApplicationNotInstalledException $ex) {\n  // Tell the operator to install the application, or degrade gracefully.\n}","preventionTips":["Document which Conduit methods your integration needs and which applications must be installed.","Run a startup probe on new installs that calls one method per required application and fails fast.","Monitor admin application changes, since uninstalling an app silently breaks dependent Conduit calls."],"tags":["conduit","phabricator","application","not-installed","php"],"backgroundTag":"feature-not-enabled","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}