Missing bundled pattern file causes a frontend fatal error
メンテナーはふだん 1 日以内に返信
@girishpanchal30 がすでに取り組んでいます。
2026年9月17日 から。
評価
この issue はまだ評価されていません。
説明
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)
- 主要言語
- PHP
- スター
- 307
- フォーク
- 88
- 平均マージ
- 2日 11時間
- マージ済み PR(30日)
- 18
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Codeinwp/neve のほかの issue
-
feature-request-triage
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
メンテナーはふだん 1 日以内に返信
-
feature-request-triage
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
メンテナーはふだん 1 日以内に返信
-
customer report feature-request-triage
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
メンテナーはふだん 1 日以内に返信
-
customer report feature-request-triage
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
メンテナーはふだん 1 日以内に返信
-
customer report feature-request-triage
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
rap2hpoutre/fast-excel#425 ·
-
bug Medium Priority
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
sync-en
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
sync-en
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 2 日以内に返信
-
Перевод устарел
難易度 1/5 1〜3時間 初心者へのやさしさ 78/100