Summary
The Elementor global-colors REST integration can crash instead of returning an error response when the globals endpoint produces an error.
Expected behavior: an error response from the Elementor globals endpoint is returned without a fatal error.
Actual behavior: the request terminates with Call to undefined method WP_Error::get_data().
Impact: affected REST requests fail, which can disrupt Elementor's global-color picker workflow.
Customer context
- Product / area: Neve Elementor compatibility, global colors REST integration
- Version: 4.2.10
- Environment: WordPress 7.0.2; PHP 8.0.30 and 8.3.33 in reported occurrences
- Integration / third party: Elementor
- Reported error / symptom:
Call to undefined method WP_Error::get_data() during a REST request
- Impact: 2 occurrences across 2 distinct production sites between 2026-08-01 and 2026-08-03.
Reproduction notes
- Activate Neve 4.2.10 with Elementor.
- Cause the
/elementor/v1/globals REST endpoint to return a WP_Error; the condition producing that response is unknown from available telemetry.
- Dispatch the REST request.
Reported result: Neve's rest_request_after_callbacks filter crashes with Call to undefined method WP_Error::get_data().
Local reproduction was not performed; the production stack trace and matching source code provide confirmation.
Diagnosis
Conclusion
Production telemetry establishes that the response passed to Neve's callback was a WP_Error; the recorded failure occurs at the callback's unconditional get_data() invocation. The inspected Neve 4.2.10 source has no type check or error branch before that call. This confirms that an error response for the targeted route can cause the reported fatal error.
Where this likely occurs
inc/compatibility/elementor.php — Elementor::init() lines 61-72 registers alter_global_colors_in_picker on rest_request_after_callbacks whenever ELEMENTOR_VERSION is defined.
inc/compatibility/elementor.php — Elementor::alter_global_colors_in_picker() lines 186-221 limits processing to /elementor/v1/globals, then calls $response->get_data() at line 210 and $response->set_data() at line 221 without validating the response object.
- The telemetry stack trace identifies
inc/compatibility/elementor.php:210 in this method under a REST request. The current checkout is tagged v4.2.10, matching the reported affected version.
- Git history attributes the relevant method and unconditional call to
52e60f9771e73f399aa70fe6001cf3e19dc124d3 (chore: adapt global colors for elementor).
Engineering notes
- The reported payload is an error object, so the failure occurs after the endpoint callback has produced an error and before REST dispatch completes.
- This inspection covers the Neve free-theme integration path only. Telemetry explicitly marks the crash as outside the bundled Themeisle SDK, and the crash location resolves to Neve source.
- The underlying Elementor condition that produces the error response was not present in the telemetry and was not reproduced locally.
Test coverage status
No relevant PHPUnit or Playwright coverage was found during inspection: searches in tests/ and e2e-tests/ found no references to alter_global_colors_in_picker or /elementor/v1/globals.
What to verify or explore next
- Reproduce an error-returning request to
/elementor/v1/globals with Neve 4.2.10 and Elementor active.
- Check the Elementor versions and endpoint conditions on affected sites to identify what causes the original
WP_Error.
- Run the relevant Neve PHPUnit and REST integration coverage, if available in the CI environment, for both successful and error responses.
Unknowns / follow-up
- The telemetry does not include Elementor versions, request parameters, or the error payload that preceded the crash.
- WordPress REST internals were not available in the inspected workspace; the response type is established by the production error message rather than a local WordPress-core source check.
Confidence
Confidence: 98/100
One reported behavior was identified. Production telemetry directly records a WP_Error reaching Neve's Elementor globals REST-response filter, while the inspected 4.2.10 code unconditionally calls a response-only method; this is a confirmed Neve defect rather than an SDK issue.
Crash telemetry
|
|
| Occurrences |
2 |
| Distinct sites |
2 |
| First seen |
2026-08-01 06:19 UTC |
| Last seen |
2026-08-03 08:12 UTC |
| Crash location |
product:inc/compatibility/elementor.php:210 |
| Request context |
rest |
| Inside Themeisle SDK |
no |
| Product versions |
4.2.10 |
| WP versions |
7.0.2 |
| PHP versions |
8.0.30, 8.3.33 |
| SDK versions |
3.3.59 |
Source: automated crash report — neve, fingerprint d43834c786817b30689d425e67b58d92
Generated by bug-report-triage (ID: bug-report-triage_6a717ffba140a1.17537101)
Summary
The Elementor global-colors REST integration can crash instead of returning an error response when the globals endpoint produces an error.
Expected behavior: an error response from the Elementor globals endpoint is returned without a fatal error.
Actual behavior: the request terminates with
Call to undefined method WP_Error::get_data().Impact: affected REST requests fail, which can disrupt Elementor's global-color picker workflow.
Customer context
Call to undefined method WP_Error::get_data()during a REST requestReproduction notes
/elementor/v1/globalsREST endpoint to return aWP_Error; the condition producing that response is unknown from available telemetry.Reported result: Neve's
rest_request_after_callbacksfilter crashes withCall to undefined method WP_Error::get_data().Local reproduction was not performed; the production stack trace and matching source code provide confirmation.
Diagnosis
Conclusion
Production telemetry establishes that the response passed to Neve's callback was a
WP_Error; the recorded failure occurs at the callback's unconditionalget_data()invocation. The inspected Neve 4.2.10 source has no type check or error branch before that call. This confirms that an error response for the targeted route can cause the reported fatal error.Where this likely occurs
inc/compatibility/elementor.php—Elementor::init()lines 61-72 registersalter_global_colors_in_pickeronrest_request_after_callbackswheneverELEMENTOR_VERSIONis defined.inc/compatibility/elementor.php—Elementor::alter_global_colors_in_picker()lines 186-221 limits processing to/elementor/v1/globals, then calls$response->get_data()at line 210 and$response->set_data()at line 221 without validating the response object.inc/compatibility/elementor.php:210in this method under a REST request. The current checkout is taggedv4.2.10, matching the reported affected version.52e60f9771e73f399aa70fe6001cf3e19dc124d3(chore: adapt global colors for elementor).Engineering notes
Test coverage status
No relevant PHPUnit or Playwright coverage was found during inspection: searches in
tests/ande2e-tests/found no references toalter_global_colors_in_pickeror/elementor/v1/globals.What to verify or explore next
/elementor/v1/globalswith Neve 4.2.10 and Elementor active.WP_Error.Unknowns / follow-up
Confidence
Confidence: 98/100
One reported behavior was identified. Production telemetry directly records a
WP_Errorreaching Neve's Elementor globals REST-response filter, while the inspected 4.2.10 code unconditionally calls a response-only method; this is a confirmed Neve defect rather than an SDK issue.Crash telemetry
product:inc/compatibility/elementor.php:210Source: automated crash report — neve, fingerprint
d43834c786817b30689d425e67b58d92Generated by bug-report-triage (ID: bug-report-triage_6a717ffba140a1.17537101)