Frontend requests can exhaust 128 MB while loading the Google Fonts catalog
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Attiva
- Ambito
- frontend, performance
Direzione di ricerca
Start with globals/utilities.php around neve_get_google_fonts() (line ~400 in v4.1.4, ~444-453 currently) and trace who calls it from inc/views/font_manager.php (init(), add_body_variants(), enqueue_google_font()), loaded via inc/core/core_loader.php. The report gives no reproduction steps, so the first task is measuring memory before and after theme module init on a 128 MB frontend request. Done means a reproducible memory measurement and a clear root cause; existing tests are in tests/test-neve-file-guards.php.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
A frontend request is expected to complete within the configured PHP memory limit. In the reported Neve 4.1.4 environment, PHP instead terminated the request with an allowed-memory-size fatal while loading the Google Fonts catalog. The affected page could not render. Telemetry recorded repeated failures on two sites using a 128 MB limit.
Customer context
Product / area: Neve frontend typography loading
Version: Neve 4.1.4
Environment: WordPress 7.1.3, PHP 8.3.36, 128 MB PHP memory limit
Integration / third party: Unknown from available evidence
Reported error / symptom: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2097152 bytes) at globals/utilities.php:400
Impact: 120 frontend crash occurrences across two sites from 2026-10-24 through 2026-10-27.
Reproduction notes
Production telemetry reports the frontend fatal at the Google Fonts catalog include in Neve 4.1.4, occurring 120 times across two sites with WordPress 7.1.3, PHP 8.3.36, and a 128 MB limit. The exact page, theme typography settings, active plugins, and pre-include memory usage were not provided. No local runtime reproduction was performed.
Diagnosis
Conclusion
The report is consistent with Neve's frontend typography initialization allocating the Google Fonts catalog while the request has insufficient remaining memory. The telemetry reports 120 occurrences across two sites, and the affected-version source eagerly reads the catalog during normal theme initialization. This supports a recurring product allocation path, although the memory already consumed before Neve reaches it is unknown.
Where this likely occurs
inc/core/core_loader.php—Core_Loader::define_modules()approx. lines 83–89 includesViews\Font_Managerin the loaded feature set.inc/views/font_manager.php—Font_Manager::init()andFont_Manager::add_body_variants()approx. lines 90–104 callneve_get_google_fonts( true )during initialization. The latter path is present in the affected v4.1.4 tag.globals/utilities.php—neve_get_google_fonts()at v4.1.4 approx. line 400 directly includesglobals/google-fonts.php; the current implementation at lines 444–453 still reads and returns that catalog throughneve_require_array().inc/views/font_manager.php—Font_Manager::enqueue_google_font()approx. lines 209–216 also retrieves the catalog when registering a buffered font.- The v4.1.4 catalog file
globals/google-fonts.phpis 107,148 bytes. Production telemetry identifies the catalog include location, but does not provide memory measurements before that operation. - Closed Neve issue #4556 documents a similar catalog-loading memory fatal. It was closed after four occurrences on one site; the current report has 120 occurrences across two sites. It is closed and does not count as an open issue tracking this report.
Engineering notes
The font manager is part of the theme's normal module initialization, so the catalog read is not limited to Customizer requests. The failure occurs when the allocation crosses the configured request limit; the available evidence does not identify what consumed the preceding memory or establish that Neve accounts for the full request footprint. Current source retains the catalog-loading path, although its helper checks file presence and validates the returned value.
Test coverage status
tests/test-neve-file-guards.php covers successful Google Fonts loading, missing catalog handling, and invalid filter results, but no memory-limit assertion was found. Typography e2e coverage exists in e2e-tests/specs/customizer/typography/font-family.spec.ts; no relevant frontend memory coverage was found during inspection.
What to verify or explore next
- May be worth capturing memory usage immediately before and after theme module initialization on a 128 MB frontend request.
- If reproducible, checking whether the fatal occurs with no configured Google font and whether it correlates with other plugins or request types may clarify the trigger.
- May be worth comparing the same request profile on the affected v4.1.4 tag and a current release, since the catalog-loading path remains present.
Unknowns / follow-up
The telemetry lacks active-plugin details, page type, selected-font configuration, memory usage before theme initialization, and a local reproduction. PHP CLI was unavailable in the inspection environment, so the catalog's runtime memory delta was not measured.
Confidence
Confidence: 80/100
Crash 2 recurred 120 times across two sites, and Neve 4.1.4 loads the Google Fonts catalog during frontend initialization; this allocation path remains in current source. The similar issue #4556 is closed, and the newer telemetry provides materially wider recurrence evidence. Crashes 1 and 3 are the same historical autoloader defect, guarded from Neve 4.2.11 onward and tracked in open issue #4605; both affected versions predate that released guard.
Crash telemetry
| Occurrences | 120 |
| Distinct sites | 2 |
| First seen | 2026-10-24 23:38 UTC |
| Last seen | 2026-10-27 22:46 UTC |
| Crash location | product:globals/utilities.php:400 |
| Request context | frontend |
| Inside Themeisle SDK | no |
| Product versions | 4.1.4 |
| WP versions | 7.1.3 |
| PHP versions | 8.3.36 |
| SDK versions | 3.3.67 |
Source: automated crash report — neve, fingerprint e5f17586a3d134bc5431629a38b91a43
Generated by bug-report-triage (ID: bug-report-triage_6ae6d5eb37cda9.34524256)
- Lingua principale
- PHP
- Stelle
- 307
- Fork
- 89
- Merge medio
- 3g 6h
- PR unite (30g)
- 24
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Codeinwp/neve
-
customer report feature-request-triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 58/100
I maintainer di solito rispondono entro 1 giorno
-
bug-report bug-report-triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
I maintainer di solito rispondono entro 1 giorno
-
bug-report bug-report-triage crash-report
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
I maintainer di solito rispondono entro 1 giorno
-
Enhance home screen and front page customization options in Neve FreeForse già presa @faisalahammad l’ha presa 18 giorni fa. Apertafeature-request-triage
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
I maintainer di solito rispondono entro 1 giorno
-
Add basic Social Icons component to free Header and Footer builderForse già presa @faisalahammad l’ha presa 18 giorni fa. Apertafeature-request-triage
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Codeinwp/neve
Issue simili
-
Captured slideshow pass overwrites the route path, aborting compose with a rebind() TypeErrorAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Automattic/blocks-engine#5003 ·
I maintainer di solito rispondono entro 1 giorno
-
from-cloud mythic tracked
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
MythicalLTD/FeatherPanel#459 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: PostgreSQL backend: Queue.remove() / Job.remove() never emit the QueueEvents "removed" eventForse già presa @1AbdullahButt l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
taskforcesh/bullmq#5085 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
shukiv/jabali-panel#2423 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100