octobercms/october · warning · ApplicationException

system::lang.server.response_empty

system::lang.server.response_empty

Error message

Empty response from the server.

What it means

ManagesModules::requestChangelog() fetches https://octobercms.com/changelog?json={version} to power the backend 'what's new' panel. A 404 status there throws — but note it reuses the 'Empty response from the server' (response_empty) key instead of response_not_found, an upstream quirk: the message says 'empty' while the real condition is 'not found'. So if you see this exact message, check for a 404 from the changelog endpoint, not necessarily an empty body.

Source

Thrown at modules/system/classes/updatemanager/ManagesModules.php:178

        }

        $build = $this->getBuildFromVersion($version);

        $this->setBuild((int) $build);

        return $build;
    }

    /**
     * requestChangelog returns the latest changelog information.
     */
    public function requestChangelog()
    {
        $result = Http::get('https://octobercms.com/changelog?json='.SystemHelper::VERSION);
        $contents = $result->body();

        if ($result->status() === 404) {
            throw new ApplicationException(Lang::get('system::lang.server.response_empty'));
        }

        if ($result->status() !== 200) {
            throw new ApplicationException(
                strlen($contents)
                ? $contents
                : Lang::get('system::lang.server.response_empty')
            );
        }

        try {
            $resultData = json_decode($contents, true);
        }
        catch (Exception $ex) {
            throw new ApplicationException(Lang::get('system::lang.server.response_invalid'));
        }

        return $resultData;

View on GitHub (pinned to b608633a7e)

Solutions

  1. Open https://octobercms.com/changelog?json=YOUR-VERSION in a browser to see the raw status
  2. Update the CMS to a current build whose changelog client matches the live endpoint
  3. If a proxy/firewall rewrites the request, allow octobercms.com for the server
  4. Treat it as non-blocking: core updates still work; the changelog panel just can't render
Defensive patterns

Strategy: try-catch

Try / catch

try {
    $changelog = \System\Classes\UpdateManager::instance()->requestChangelog();
} catch (\October\Rain\Exception\ApplicationException $ex) {
    // changelog is informational — never let it break the Updates page
    $changelog = [];
    Log::info('Changelog unavailable: ' . $ex->getMessage());
}

Prevention

When it happens

Trigger: Opening the Updates area / changelog view when octobercms.com returns 404 for the changelog URL: site moved the endpoint, the ?json=VERSION parameter routes to a missing page for that build, or an intercepting proxy returns 404.

Common situations: Endpoint changes on octobercms.com after upgrading an old install; custom BLOCKED_URL/proxy setups answering 404; local hosts-file overrides; the changelog feature being non-critical so failures surprise admins during routine update checks.

Related errors


AI-assisted analysis of octobercms/october@b608633a7e (2026-08-21). Data as JSON: /api/errors/f9614b5970066ca7. Report an issue: GitHub.