octobercms/october · error · ApplicationException
system::lang.server.response_not_found
system::lang.server.response_not_found
Error message
The update server could not be found.
What it means
UpdateManager's requestServerData() (HasGatewayAccess trait) POSTs to the configured update/marketplace gateway and treats HTTP 404 as 'the update server could not be found', throwing an ApplicationException with system::lang.server.response_not_found. A 404 here means the gateway answered but the requested API URI does not exist for your parameters — not a generic network failure. Common to the update, marketplace browse, and project flows that all funnel through requestServerData().
Source
Thrown at modules/system/classes/updatemanager/HasGatewayAccess.php:45
/**
* @var string Secure API Secret
*/
protected $secret;
/**
* requestServerData contacts the update server for a response.
* @param string $uri
* @param array $postData
* @return array
*/
public function requestServerData($uri, $postData = [])
{
$result = $this->makeHttpRequest($this->createServerUrl($uri), $postData);
$contents = $result->body();
if ($result->status() === 404) {
throw new ApplicationException(Lang::get('system::lang.server.response_not_found'));
}
if ($result->status() !== 200) {
throw new ApplicationException(
strlen($contents)
? $contents
: Lang::get('system::lang.server.response_empty')
);
}
$resultData = false;
try {
$resultData = @json_decode($contents, true);
}
catch (Exception $ex) {
throw new ApplicationException(Lang::get('system::lang.server.response_invalid'));
}View on GitHub (pinned to b608633a7e)
Solutions
- Verify the configured update/marketplace gateway URL (config/cms.php and Settings → Updates) points at a server that actually serves the October update API
- Test the base URL in a browser/curl — a plain 404 page confirms the wrong host or path
- If using a private mirror, make sure it implements every endpoint the updater calls, including project/core routes
- If behind a proxy/firewall, confirm api/marketplace hosts are allowed and not being rewritten to a 404
Defensive patterns
Strategy: try-catch
Try / catch
try {
$data = \System\Classes\UpdateManager::instance()->requestServerData('api/core/update', $params);
} catch (\October\Rain\Exception\ApplicationException $ex) {
// 404 from the gateway — surface a friendly admin message, keep the panel usable
Flash::error('Update service unavailable: ' . $ex->getMessage());
return back();
} Prevention
- Pin the gateway URL to a known-good server in config before enabling update features
- Smoke-test the update endpoints with curl when pointing at a private mirror
- Never let updater exceptions crash a scheduled job — always catch in cron-driven checks
When it happens
Trigger: Any backend update/marketplace action (Check for updates, install plugin/core) where the gateway returns 404 for the URI built by createServerUrl(): wrong/overridden gateway URL, an API channel or endpoint retired server-side, or an unknown project/edition parameter producing an unknown route.
Common situations: Custom/internal update server (config/cms.php update URL override) missing the expected endpoints; October CMS v1.x era gateways that no longer exist; marketplace API changes after upgrading; a proxy or host returning 404 for blocked domains.
Related errors
- system::lang.server.response_empty
- system::lang.server.response_empty
- system::lang.server.response_invalid
- The combiner file ':name' is not found.
- The resizer file ':name' is not found.
AI-assisted analysis of octobercms/october@b608633a7e (2026-08-21).
Data as JSON: /api/errors/8eca274a240b0ee9.
Report an issue: GitHub.