[wp-trac] [WordPress Trac] #62223: "Error in moving the item to Trash" when using Cloudflare Speed Brain (Missing/Unreachable directories)
WordPress Trac
noreply at wordpress.org
Mon Oct 14 23:14:14 UTC 2024
#62223: "Error in moving the item to Trash" when using Cloudflare Speed Brain
(Missing/Unreachable directories)
-------------------------------+-----------------------------
Reporter: da5f656f | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Posts, Post Types | Version:
Severity: normal | Keywords:
Focuses: |
-------------------------------+-----------------------------
Cloudflare has implemented a "Speed Brain" feature which uses the
Speculation-Rules API to make prefetch requests. It was launched on
September 25, 2024.
All Cloudflare free accounts are opted into this feature by default.
However during the beta period not all requests have the feature enabled.
To confirm that "Speed Brain" is active on the request: "check that your
HTTP response headers for your web pages include the Speculation-Rules
header." Approximately 25% to 50% of requests were observed to have this
header.
Only Chromium browsers have implemented this experimental feature:
https://caniuse.com/mdn-http_headers_speculation-rules
Speed Brain is designed to not hit the origin server:
"Prefetch requests will never reach origin servers. Prefetch requests only
serve content that is stored in Cloudflare’s Cache. If the content is not
in Cache, the prefetch request will not continue to origin servers.
Without this safeguard, origin server state could be modified despite the
prefetch response not being rendered in the browser. An example of this
could be a prefetch GET request to a sign-out URL inadvertently triggering
a sign-out action on the server."
https://developers.cloudflare.com/speed/optimization/content/speed-brain/
== Errors Observed
With Speed Brain enabled status 503 errors are generated when creating a
new post.
Although this is generating 503 errors, it does not appear that the 503
requests hit the origin server.
When deleting a post, 503 errors are generated and the error message
"Error in moving the item to Trash" is displayed.
This 500 does seem to hit the origin server:
{{{
162.158.63.78 - example.com - [14/Oct/2024:22:25:01 +0000] "GET /wp-
admin/post.php?post=163&action=trash&_wpnonce=8076b7b729 HTTP/1.1" 302 -
"https://www.example.com/wp-admin/edit.php?post_type=post" "Mozilla/5.0
(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/129.0.0.0 Safari/537.36"
162.158.63.78 - example.com - [14/Oct/2024:22:25:02 +0000] "GET /wp-
admin/post.php?post=163&action=trash&_wpnonce=8076b7b729 HTTP/1.1" 500
2484 "https://www.example.com/wp-admin/edit.php?post_type=post"
"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/129.0.0.0 Mobile Safari/537.36"
}}}
No errors or warnings are logged by this delete.
== Steps to Reproduce
1. Ensure that Cloudflare Speed Brain is enabled on your domain: Go to
Speed > Optimization > Content Optimization.
2. Visit WordPress Posts page
3. Ensure that Speed Brain is active on your requests by request by
refreshing page and checking for the "speculation-rules" header on the
document (value of "/cdn-cgi/speculation" when testing)
4. Create a new post using the block editor, note 503 errors
5. Publish post, return to Posts page
6. Confirm "speculation-rules" header exists on request
7. Trash post
8. "Error in moving the item to Trash." message displayed
9. Post was successfully deleted on refresh of Posts page
With Speed Brain disabled, no 503 errors or "Error in moving the item to
Trash" message appears.
Tested on PHP 8.0.30 with WordPress 6.6.2.
== Expected Behavior
No 503 errors when visiting Post editor or trashing the post.
== Actual Behavior
When creating the Post initially, the 503 prefetch has this header:
{{{
Status Code: 503 Service Unavailable (from prefetch cache)
cf-speculation-refused: prefetch refused: not eligible
}}}
When trashing the post, it appears that Cloudflare is sending both GET
requests to the origin server, despite:
{{{
Status Code: 503 Service Unavailable (from prefetch cache)
cf-speculation-refused: prefetch refused: not eligible
}}}
This issue with Cloudflare Speed Brain potentially exacerbated issues with
ticket:61114.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/62223>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list