{"record":{"id":"ea3a6f43510e1b2f","repo":"phacility/phabricator","slug":"configuration-file-does-not-specify-any-servers-t","errorCode":null,"errorMessage":"Configuration file does not specify any servers. This service will not be able to interact with the outside world if it does not listen on any ports. You must specify at least one \"%s\" server and at least one \"%s\" server.","messagePattern":"Configuration file does not specify any servers\\. This service will not be able to interact with the outside world if it does not listen on any ports\\. You must specify at least one \"(.+?)\" server and at least one \"(.+?)\" server\\.","errorType":"console","errorClass":"PhutilArgumentUsageException","httpStatus":null,"severity":"error","filePath":"src/applications/aphlict/management/PhabricatorAphlictManagementWorkflow.php","lineNumber":169,"sourceCode":"\n      $ssl_chain = idx($server, 'ssl.chain');\n      if ($ssl_chain && (!$ssl_key && !$ssl_cert)) {\n        throw new PhutilArgumentUsageException(\n          pht(\n            'A specified server (at index \"%s\", on port \"%s\") specifies '.\n            'a value for \"%s\", but no value for \"%s\" or \"%s\". Servers '.\n            'should only provide an SSL chain if they also provide an SSL '.\n            'key and SSL certificate.',\n            $index,\n            $port,\n            'ssl.chain',\n            'ssl.key',\n            'ssl.cert'));\n      }\n    }\n\n    if (!$servers) {\n      throw new PhutilArgumentUsageException(\n        pht(\n          'Configuration file does not specify any servers. This service '.\n          'will not be able to interact with the outside world if it does '.\n          'not listen on any ports. You must specify at least one \"%s\" '.\n          'server and at least one \"%s\" server.',\n          'admin',\n          'client'));\n    }\n\n    if (!$has_client) {\n      throw new PhutilArgumentUsageException(\n        pht(\n          'Configuration file does not specify any client servers. This '.\n          'service will be unable to transmit any notifications without a '.\n          'client server. You must specify at least one server with '.\n          'type \"%s\".',\n          'client'));\n    }","sourceCodeStart":151,"sourceCodeEnd":187,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/aphlict/management/PhabricatorAphlictManagementWorkflow.php#L151-L187","documentation":"Thrown after the per-server loop if the 'servers' list in the Aphlict config is empty (or the key holds an empty array). With no listeners at all the server cannot talk to browsers or the web tier, so this is rejected up front rather than starting a useless daemon.","triggerScenarios":"\"servers\" is present but [] — for example a minimal config that only sets pidfile/logs, or a templating bug that renders an empty loop.","commonSituations":"Config generated from a template where the servers block is conditionally empty; someone strips servers while debugging and forgets to restore them.","solutions":["Add at least one {\"type\": \"client\", ...} server (websocket listener for browsers) and one {\"type\": \"admin\", ...} server (receives messages from Phabricator)","Start from the stock example config in conf/ and adapt ports/paths"],"exampleFix":"// before\n{\"pidfile\": \"/var/run/aphlict.pid\", \"servers\": []}\n// after\n{\"pidfile\": \"/var/run/aphlict.pid\", \"servers\": [\n  {\"type\": \"client\", \"port\": 22280},\n  {\"type\": \"admin\",  \"port\": 22281}\n]}","handlingStrategy":"validation","validationCode":"if (empty($config['servers'])) {\n  throw new InvalidArgumentException('Aphlict config needs at least one client and one admin server');\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Start from the shipped example config which already has both required servers","In templated deployments, assert the servers list is non-empty before render"],"tags":["aphlict","configuration","required-field-missing","phabricator"],"backgroundTag":"missing-required-config","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}