Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

Most webservers have a maximum header size limit. Most common limit is 8K per header, which may be configurable or not, as is (at the time of writing) the case of Apache2 with mod_proxy_fcgi.

For complex sites, the number of cache tags may be large, so when http.response.debug_cacheability_headers is enabled, the respective headers' size may exceed the server limit, resulting in server errors (WSOD, 502 Bad Gateway etc).

Related issues with more details and discussion:

The proposed approach is to split the large cacheability header(s) into multiple ones within the limit (e.g. 'X-Drupal-Cache-Tags', 'X-Drupal-Cache-Tags-1', 'X-Drupal-Cache-Tags-2' etc).

Features

When http.response.debug_cacheability_headers is enabled and if one of the cacheability headers exceeds the configured size limit, the header is automatically split into chunks.

Post-Installation

The default applicable configuration for the header limits is:
- 8192 (8KB) for the size limit per header
- 8000 (< 8KB) for the header chunk size when split

You may configure these at /admin/config/development/settings/cacheability.

Alternatively, you may override them via `settings.local.php` file as follows:

$config['debug_cacheability_headers_split.settings']['header_size_limit'] = 5120;
$config['debug_cacheability_headers_split.settings']['header_chunk_size'] = 5000;

Additional Requirements

None.

Similar projects

I do not believe that this is a core bug nor that it should be addressed by Drupal core. See detailed explanation here.

Activity

Total releases
2
First release
Jun 2025
Latest release
6 months ago
Release cadence
84 days
Stability
100% stable

Releases

Version Type Release date
1.0.1 Stable Sep 22, 2025
1.0.0 Stable Jun 30, 2025