Codeinwp / Codeinwp/otter-blocks
Pattern registration fatals when `cafe-about.php` is unavailable
- Dominant language
- JavaScript
- Stars
- 198
- Forks
- 36
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 30
Description
Summary
Otter Blocks can terminate frontend requests while registering bundled patterns when the Cafe - About pattern file is unavailable.
Expected behavior: pattern registration continues without taking down the request when an individual bundled pattern cannot be loaded.
Actual behavior: the request ends with a failed-opening-required error for cafe-about.php.
Impact: affected sites can return an error for frontend requests that initialize WordPress, including the reported XML-RPC request path.
Customer context
- Product / area: Otter Blocks pattern registration
- Version: 3.2.2
- Environment: WordPress 7.0.4; PHP 8.3.33
- Integration / third party: None reported
- Reported error / symptom: Failed opening required
cafe-about.phpduring frontend initialization - Impact: 2 telemetry occurrences across 1 site between 2026-08-15 and 2026-08-19.
Reproduction notes
- Install Otter Blocks 3.2.2 on a supported WordPress environment.
- Make the configured
inc/patterns/cafe-about.phpfile unavailable while leaving its registration entry present. - Initialize WordPress through a frontend or XML-RPC request.
Reported result: initialization ends with a failed-opening-required error for that pattern file. The production report confirms the failure; the unavailable-file setup has not been run locally during this investigation.
Diagnosis
Conclusion
Production crash telemetry identifies ThemeIsle\GutenbergBlocks\Patterns::register_patterns() as the failing application frame at inc/class-patterns.php:378. The inspected code constructs a path from every configured pattern slug and passes it directly to require; therefore, an unavailable bundled pattern file produces the recorded uncaught error rather than isolating that unavailable pattern. The repository's v3.2.2 tag contains inc/patterns/cafe-about.php, so the evidence does not establish why that one production installation lacked it.
Where this likely occurs
- Frontend WordPress
initinvokes the pattern-registration callback registered ininc/class-patterns.phplines 41-42,Patterns::init(). inc/class-patterns.phplines 322-334,Patterns::register_patterns(), includescafe-aboutin the page-pack pattern list for WordPress versions at least 5.8.inc/class-patterns.phplines 369-379,Patterns::register_patterns(), derivesinc/patterns/<slug>.phpand executes an unconditionalrequireat line 378.inc/patterns/cafe-about.phplines 1-13 exists in the inspected checkout and in tagv3.2.2; the failure condition is an absent or inaccessible file in the affected deployment rather than a missing tracked source file.- Git history attributes the current pattern-library structure to
ca984a20(feat: rework pattern library and patterns), which added thecafe-aboutregistration entry.
Engineering notes
The failure is in the free Otter Blocks repository, not the bundled Themeisle SDK. The callback runs on init without an is_admin() restriction, matching telemetry marked as frontend and the XML-RPC bootstrap stack. The unconditional include applies to the entire configured pattern list; only the cafe-about.php absence is evidenced by this crash fingerprint. The installation or delivery condition that made the file unavailable is unknown from aggregated telemetry.
Test coverage status
tests/test-patterns-upsell.php lines 242-252, test_register_patterns_registers_categories_and_patterns(), exercises successful pattern registration and one expected registered pattern. No relevant coverage was found during inspection for a configured pattern whose source file is absent or unreadable.
What to verify or explore next
- Reproduce in an isolated Otter Blocks 3.2.2 installation after making only
inc/patterns/cafe-about.phpunavailable, then invoke WordPress initialization. - Check the distributed 3.2.2 archive and update/install workflow for conditions that can omit or make a file under
inc/patterns/inaccessible. - Run the PHP pattern test suite with a temporary unavailable-pattern scenario to characterize current behavior.
- Verify whether the same failure mode occurs for other entries in the configured pattern list.
Unknowns / follow-up
- The telemetry contains no plugin filesystem state, installation method, permissions, or full unredacted path.
- The affected site's use of a customized, incomplete, or interrupted plugin installation is not known.
Confidence
Confidence: 91/100
Production telemetry records two frontend crashes on Otter Blocks 3.2.2, and the reported failing require is directly reachable in the plugin's pattern-registration loop without a missing-file fallback. The release tag contains the referenced pattern file, so the absent-file condition is likely installation/package-state specific, but the resulting uncaught fatal error is confirmed by the recorded stack and source inspection.
Crash telemetry
| Occurrences | 2 |
| Distinct sites | 1 |
| First seen | 2026-08-15 14:36 UTC |
| Last seen | 2026-08-19 04:59 UTC |
| Crash location | product:inc/class-patterns.php:378 |
| Request context | frontend |
| Inside Themeisle SDK | no |
| Product versions | 3.2.2 |
| WP versions | 7.0.4 |
| PHP versions | 8.3.33 |
| SDK versions | 3.3.58 |
Source: automated crash report — otter-blocks, fingerprint a17424dbcfa9b630ab22b39c4f777c09
Generated by bug-report-triage (ID: bug-report-triage_6a86981a746427.03112827)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.