Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). UI Patterns (SDC in Drupal UI) 2.0.18 Minor update available for module ui_patterns (2.0.18). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

This module splits large cacheability headers into multiple smaller headers to prevent web server errors caused by exceeding maximum header size limits. It automatically divides headers if they exceed a configured size, ensuring cacheability information is still accessible.

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
9 months ago
Releases (12 mo)
1
Maintenance
Slowing

Releases

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