Missing bundled pattern file causes a frontend fatal error
I maintainer di solito rispondono entro 1 giorno
@girishpanchal30 ci sta già lavorando.
Dal 17/9/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Summary
Neve can terminate a frontend request when the registered three-columns-images-texts-content pattern file is unavailable.
Expected behavior: An unavailable optional pattern file is skipped and the site continues loading.
Actual behavior: Pattern registration raises a fatal “Failed opening required” error during initialization.
Impact: Affected sites return a fatal error on frontend requests instead of rendering the requested page.
Customer context
- Product / area: Neve block-pattern registration
- Version: 3.8.16
- Environment: WordPress 7.0.2 and 7.0.4; PHP 7.4.33
- Integration / third party: Not applicable
- Reported error / symptom:
Failed opening requiredforthree-columns-images-texts-content.phpat pattern registration - Impact: 2 telemetry occurrences across 1 production site during the observed window; frontend requests crashed.
Reproduction notes
- On Neve
3.8.16, make the configuredthree-columns-images-texts-content.phppattern file unavailable or unreadable. - Load a frontend request after WordPress initialization reaches Neve pattern registration.
- Observed production result: the request fatals with
Failed opening requiredfor that file.
The availability failure was captured by telemetry; its cause was not captured, so the file-removal/readability setup is inferred from the fatal message.
Diagnosis
Conclusion
Production telemetry records a frontend fatal at Patterns::define_patterns() while requiring three-columns-images-texts-content.php. The source at release v3.8.16 contains an unconditional require for every configured pattern, including that filename, so an unavailable file terminates the initialization request. This is direct code evidence for the reported behavior.
Where this likely occurs
inc/compatibility/patterns.php—Neve\Compatibility\Patterns::define_patterns()approx. lines 46-58 inv3.8.16; iterates the pattern list and passesrequire __DIR__ . '/block-patterns/' . $pattern . '.php'directly toregister_block_pattern().inc/compatibility/patterns.php—Neve\Compatibility\Patterns::$patternsapprox. lines 21-34 inv3.8.16; includesthree-columns-images-texts-content, matching the crash filename.inc/core/core_loader.php— core feature list approx. lines 116-130 includesCompatibility\Patterns, confirming this compatibility component is loaded in the standard theme bootstrap.- Commit
395e4b5dd58b5adc102f0936b417efa4ca6bf41e(fix: improve autoloader and file inclusion handling, 2026-08-07) changes this method to use a guarded array loader and skip unavailable patterns. The current branch contains that commit;v4.2.11contains it, while affected tagv3.8.16predates it.
Engineering notes
- The current checkout contains
inc/compatibility/block-patterns/three-columns-images-texts-content.php, but the fatal proves the production installation could not load that path at runtime. The rawrequireinv3.8.16makes absence or unreadability of a packaged pattern file fatal. - The telemetry is from the frontend
initpath, not an editor-only pattern insertion flow. - No Themeisle SDK frame or SDK source is implicated; telemetry explicitly identifies the crash as outside the SDK.
- The later guarded path in
globals/utilities.php—neve_require_array()lines 400-407 — checks file presence and readability before including it. This supports the scope of the historical issue but does not establish why the file was unavailable on the affected production installation.
Test coverage status
tests/test-neve-file-guards.phpcontains coverage forneve_require_array()missing-file behavior atTest_Neve_File_Guards::testRequireArrayFallsBackForMissingFile()lines 63-75.- No pattern-registration-specific test covering a missing item from
Patterns::$patternswas found during inspection. The available helper test coverage was introduced with the later guard commit, not inv3.8.16.
What to verify or explore next
- May be worth reproducing from a
v3.8.16installation after making the named pattern file unavailable, then loading a frontend request. - Check whether released 3.8.x package generation or interrupted updates can leave a configured pattern absent or unreadable.
- If release maintenance is in scope, inspect the earliest release tag containing
395e4b5ddand verify frontend behavior there with the file unavailable.
Unknowns / follow-up
- The telemetry does not identify why the target file was absent on the affected site.
- The observed crash count is limited to one site and two requests; wider prevalence is unknown.
Confidence
Confidence: 96/100
The production crash is directly attributable to Neve 3.8.16 requiring a pattern file without an existence guard; the released source matches the telemetry location, and later Neve history adds explicit protection for this failure mode.
Crash telemetry
| Occurrences | 2 |
| Distinct sites | 1 |
| First seen | 2026-08-06 04:39 UTC |
| Last seen | 2026-08-12 19:38 UTC |
| Crash location | product:inc/compatibility/patterns.php:53 |
| Request context | frontend |
| Inside Themeisle SDK | no |
| Product versions | 3.8.16 |
| WP versions | 7.0.2, 7.0.4 |
| PHP versions | 7.4.33 |
| SDK versions | 3.3.58 |
Source: automated crash report — neve, fingerprint 3a42cdd190200998da6118eb8d402823
Generated by bug-report-triage (ID: bug-report-triage_6a7d5d85bf7b97.65006165)
- Lingua principale
- PHP
- Stelle
- 307
- Fork
- 88
- Merge medio
- 1g 19h
- PR unite (30g)
- 17
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
-
Primary menu dropdown arrows gain circular button decoration in Neve 4.2.13Forse già presa @girishpanchal30 l’ha presa 1 giorno fa. Apertabug-report bug-report-triage customer report regression
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Codeinwp/neve#4636 · 7 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Generic link hover color overrides header cart icon colorForse già presa @HardeepAsrani l’ha presa oggi. Apertabug-report bug-report-triage customer report regression
Codeinwp/neve#4643 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Generic link hover color overrides My Account header component colorForse già presa @HardeepAsrani l’ha presa oggi. Apertabug-report bug-report-triage customer report regression
Codeinwp/neve#4642 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
feature-request-triage
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
I maintainer di solito rispondono entro 1 giorno
-
feature-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
-
UX
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ProfessionalWiki/NeoWiki#1573 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
sync-en
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
sync-en
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno