Title: WordPress not accepting QUIC.cloud REST API callbacks
Last modified: August 5, 2026

---

# WordPress not accepting QUIC.cloud REST API callbacks

 *  Resolved [Tony Hisir](https://wordpress.org/support/users/copperrefections/)
 * (@copperrefections)
 * [1 day, 23 hours ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/)
 * **LiteSpeed Cache version:** 7.8.1
   **Hosting:** FastComet (shared hosting)**Other
   relevant plugins:** WordFence Security (Pro), WooCommerce, Rank Math SEO**Cloudflare:**
   DNS only (not proxied) — not the cause of any REST blocking
 * **The problem:**
   QUIC.cloud is able to send optimization work to my site (VPI/
   CCSS requests are going out, and Image Optimization has completed successfully—
   53,900+ images pulled), but when QUIC.cloud’s servers try to call back into my
   site’s REST API to deliver finished results, that callback fails.
 * **Symptoms:**
    - LiteSpeed Cache dashboard shows: _“WordPress gave an unexpected response when
      notified with QUIC.cloud service results. Check WP API is properly configured.”_
    - The `node_wpapi_failed` flag appears persistently across the LiteSpeed Cache
      dashboard (visible in the query string of every action link — Refresh Usage,
      Refresh Status, etc.)
    - QUIC.cloud dashboard shows repeated _“Invalid WP API response”_ entries and_“
      CCSS generation failed”_ errors across multiple pages/templates (not limited
      to one template type)
 * **Diagnostic steps already taken:**
    1. Manually tested the plugin’s REST endpoint directly:
 *     ```wp-block-code
         /wp-json/litespeed/v1/notify_vpi
       ```
   
 * Response:
 *     ```wp-block-code
          {"code":"rest_no_route","message":"No route was found matching the URL and request method.","data":{"status":404}}
       ```
   
 * This suggests the route isn’t registered with WordPress’s REST API at all (a 
   404 `rest_no_route`, not a 403 firewall block).
    2. Flushed permalinks (Settings → Permalinks → Save) — no change.
    3. Allowlisted LiteSpeed’s REST namespace (`/wp-json/litespeed/v1/`, `/wp-json/
       litespeed/v3/`, `/wp-json/litespeed/*`) in WordFence’s firewall, plus allowlisted`
       check.lscache.io` — no change.
    4. Applied the community-documented `disabled_node` reset fix:
 * php
 *     ```wp-block-code
          add_action('init', function() {
              if (class_exists('\LiteSpeed\Cloud')) {
                  \LiteSpeed\Cloud::save_summary(['disabled_node' => []]);
              }
          });
       ```
   
 * This has been running in my child theme’s `functions.php` **for several years**,
   with no change to the underlying problem.
 * **Question for support:**
   Since this has persisted for years despite the standard
   fixes, and the REST endpoint itself returns `rest_no_route` rather than a firewall-
   style block, could you check server-side whether this route is registering correctly
   for my site/hosting environment? Happy to send an Environment Report (Toolbox
   → Report → Send to LiteSpeed) if that helps.
 * Feel free to send the Environment Report alongside this note if their ticket 
   form allows an attachment — I mentioned it at the end so they know it’s available.
 * The page I need help with: _[[log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fwordpress-not-accepting-quic-cloud-rest-api-callbacks%2F%3Foutput_format%3Dmd&locale=en_US)
   to see the link]_

Viewing 10 replies - 1 through 10 (of 10 total)

 *  Plugin Support [litetim](https://wordpress.org/support/users/litetim/)
 * (@litetim)
 * [1 day, 23 hours ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/#post-18985294)
 * [@copperrefections](https://wordpress.org/support/users/copperrefections/) please
   send a report to Litespeed from LSC => Toolbox => Report => click on “Send to
   Litespeed” and share the ID generated(JUST the ID)
   Thank you
 *  Thread Starter [Tony Hisir](https://wordpress.org/support/users/copperrefections/)
 * (@copperrefections)
 * [1 day, 23 hours ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/#post-18985298)
 * Last Report Number: **PNRCKAFC**
 *  Plugin Support [litetim](https://wordpress.org/support/users/litetim/)
 * (@litetim)
 * [1 day, 6 hours ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/#post-18986170)
 * [@copperrefections](https://wordpress.org/support/users/copperrefections/) 
   HelloThe
   code with **‘disabled_node’** do not run all the time, correct?Your server ip(
   direct IP to server) is: **18\*.\*.\*.99**, please confirm.I tried connecting
   from CCSS node(that is used by your domain) to your site and I got a captcha 
   response. **One moment, please…** Please make sure there is no captcha added:
   from plugin or CloudFlare.Tried other QC server and I did not got the captcha
   response.Main causes that could be:– server IP detection is not working as expected–
   something is stopping outside access(Cloudflare, Wordfence or other code)Things
   that can show “no route”: PHP code that will remove all routes **OR** routes 
   are limited by firewall.Also, the report show an empty **api_key** Retry connecting
   the site to QC.
 *  Thread Starter [Tony Hisir](https://wordpress.org/support/users/copperrefections/)
 * (@copperrefections)
 * [1 day, 2 hours ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/#post-18986372)
 * Yes; 185*******99
 * This is the code Litespeed Support team had put on the top of my function.php
   page.
 *     ```wp-block-code
       <?phpadd_filter( 'cron_schedules', function( $schedules ) {/*** Increased to 7200 (2 Hours) to protect server resources* and prevent high PHP execution time errors.*/$schedules['litespeed_crawl_filter'] = array( 'interval' => 7200, 'display' => 'LiteSpeed Crawler Every 2 Hours' );return $schedules;} );/if( is_plugin_active( 'litespeed-cache/litespeed-cache.php' ) ) { $_triggers = array( LiteSpeed\Base::O_IMG_OPTM_CRON => array( 'name' => 'litespeed_task_imgoptm_pull', 'hook' => 'LiteSpeed\Img_Optm::cron_pull' ), // always fetch immediately LiteSpeed\Base::O_OPTM_CSS_ASYNC => array( 'name' => 'litespeed_task_ccss', 'hook' => 'LiteSpeed\CSS::cron_ccss' ), LiteSpeed\Base::O_OPTM_UCSS => array( 'name' => 'litespeed_task_ucss', 'hook' => 'LiteSpeed\UCSS::cron' ), LiteSpeed\Base::O_MEDIA_VPI_CRON => array( 'name' => 'litespeed_task_vpi', 'hook' => 'LiteSpeed\VPI::cron' ), LiteSpeed\Base::O_MEDIA_PLACEHOLDER_RESP_ASYNC => array( 'name' => 'litespeed_task_lqip', 'hook' => 'LiteSpeed\Placeholder::cron' ), LiteSpeed\Base::O_DISCUSS_AVATAR_CRON => array( 'name' => 'litespeed_task_avatar', 'hook' => 'LiteSpeed\Avatar::cron' ), LiteSpeed\Base::O_IMG_OPTM_AUTO => array( 'name' => 'litespeed_task_imgoptm_req', 'hook' => 'LiteSpeed\Img_Optm::cron_auto_request' ), LiteSpeed\Base::O_CRAWLER => array( 'name' => 'litespeed_task_crawler', 'hook' => 'LiteSpeed\Crawler::start' ), // Set crawler to last one to use above results ); foreach ( $_triggers as $id => $trigger ) { add_action( $trigger[ 'name' ], $trigger[ 'hook' ] ); } }/
       ```
   
 *  Plugin Support [litetim](https://wordpress.org/support/users/litetim/)
 * (@litetim)
 * [1 day, 1 hour ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/#post-18986413)
 * [@copperrefections](https://wordpress.org/support/users/copperrefections/) 
   /
   _if( is\_plugin\_active( ‘lite_ is all 1 line? or is a mistake into copy?Use 
   a service like [https://pastebin.com/](https://pastebin.com/)Thank you
 *  Thread Starter [Tony Hisir](https://wordpress.org/support/users/copperrefections/)
 * (@copperrefections)
 * [22 hours, 12 minutes ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/#post-18986538)
 * **`disabled_node` code doesn’t run all the time, correct?”**
   Yes — correct, It
   does not run all the time.
 * This is the code in my function.php
 * add_filter( ‘cron_schedules’, function( $schedules ) {
   /*** Increased to 7200(
   2 Hours) to protect server resources* and prevent high PHP execution time errors.*/
   $schedules[‘litespeed_crawl_filter’] = array( ‘interval’ => 7200, ‘display’ =
   > ‘LiteSpeed Crawler Every 2 Hours’ );return $schedules;} );
 * /_if( is\_plugin\_active( ‘litespeed-cache/litespeed-cache.php’ ) ) { $\_triggers
   = array( LiteSpeed\Base::O\_IMG\_OPTM\_CRON => array( ‘name’ => ‘litespeed\_task\
   _imgoptm\_pull’, ‘hook’ => ‘LiteSpeed\Img\_Optm::cron\_pull’ ), // always fetch
   immediately LiteSpeed\Base::O\_OPTM\_CSS\_ASYNC => array( ‘name’ => ‘litespeed\
   _task\_ccss’, ‘hook’ => ‘LiteSpeed\CSS::cron\_ccss’ ), LiteSpeed\Base::O\_OPTM\
   _UCSS => array( ‘name’ => ‘litespeed\_task\_ucss’, ‘hook’ => ‘LiteSpeed\UCSS::
   cron’ ), LiteSpeed\Base::O\_MEDIA\_VPI\_CRON => array( ‘name’ => ‘litespeed\_task\
   _vpi’, ‘hook’ => ‘LiteSpeed\VPI::cron’ ), LiteSpeed\Base::O\_MEDIA\_PLACEHOLDER\
   _RESP\_ASYNC => array( ‘name’ => ‘litespeed\_task\_lqip’, ‘hook’ => ‘LiteSpeed\
   Placeholder::cron’ ), LiteSpeed\Base::O\_DISCUSS\_AVATAR\_CRON => array( ‘name’
   => ‘litespeed\_task\_avatar’, ‘hook’ => ‘LiteSpeed\Avatar::cron’ ), LiteSpeed\
   Base::O\_IMG\_OPTM\_AUTO => array( ‘name’ => ‘litespeed\_task\_imgoptm\_req’,‘
   hook’ => ‘LiteSpeed\Img\_Optm::cron\_auto\_request’ ), LiteSpeed\Base::O\_CRAWLER
   => array( ‘name’ => ‘litespeed\_task\_crawler’, ‘hook’ => ‘LiteSpeed\Crawler::
   start’ ), // Set crawler to last one to use above results ); foreach ( $\_triggers
   as $id => $trigger ) { add\_action( $trigger[ ‘name’ ], $trigger[ ‘hook’ ] );}}_/
 *  Thread Starter [Tony Hisir](https://wordpress.org/support/users/copperrefections/)
 * (@copperrefections)
 * [22 hours ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/#post-18986542)
 * Hi (@litetim),
 * Can you send me the current official list of QUIC.cloud service IP ranges to 
   allowlist, please? I think wordfence might be blocking QUIC.cloud
 * For context — we already have QUIC.cloud set as the Trusted Proxy Preset in Wordfence,
   so IP detection there should be accurate and up to date. Given that, we suspect
   the CAPTCHA you saw is coming from our QUIC.cloud CDN’s own Traffic Filter (currently
   set to block all continents except North America) rather than from Wordfence.
   Can you confirm whether your CCSS service nodes are exempt from a site’s own 
   geo-filter, similar to how Googlebot is excluded?”
 * Thank you very much for all your help
 * Tony
    -  This reply was modified 21 hours, 32 minutes ago by [Tony Hisir](https://wordpress.org/support/users/copperrefections/).
 *  Thread Starter [Tony Hisir](https://wordpress.org/support/users/copperrefections/)
 * (@copperrefections)
 * [21 hours, 48 minutes ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/#post-18986546)
 * Can you send me the current official list of QUIC.cloud service IP ranges to 
   allowlist, please?
 * in my.quic.cloud Traffic Filters; CAPTCHA is set to Reject
 * Other than North America, everywhere else is blocked .
 * WordFence blocks all countries except Canada and the USA. Because these are the
   only two countries we sell to
 * “Our QUIC.cloud CDN Traffic Filter blocks all continents except North America.
   Is your CCSS service node (eu-service-ctr2.quic.cloud) exempt from our own geo-
   filter the way Googlebot is, or would our filter block your own infrastructure?
   This seems to match the CAPTCHA response you found when testing that node.”
    -  This reply was modified 21 hours, 46 minutes ago by [Tony Hisir](https://wordpress.org/support/users/copperrefections/).
    -  This reply was modified 21 hours, 43 minutes ago by [Tony Hisir](https://wordpress.org/support/users/copperrefections/).
 *  Plugin Support [litetim](https://wordpress.org/support/users/litetim/)
 * (@litetim)
 * [15 hours, 5 minutes ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/#post-18986715)
 * [@copperrefections](https://wordpress.org/support/users/copperrefections/) QC
   ips: [https://www.quic.cloud/ips?json](https://www.quic.cloud/ips?json) OR simply
   [https://quic.cloud/ips](https://quic.cloud/ips)
 *  Thread Starter [Tony Hisir](https://wordpress.org/support/users/copperrefections/)
 * (@copperrefections)
 * [6 hours, 7 minutes ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/#post-18987477)
 * Thank you very much [@litetim](https://wordpress.org/support/users/litetim/) .
   I appreciate it.

Viewing 10 replies - 1 through 10 (of 10 total)

You must be [logged in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fwordpress-not-accepting-quic-cloud-rest-api-callbacks%2F%3Foutput_format%3Dmd&locale=en_US)
to reply to this topic.

 * ![](https://ps.w.org/litespeed-cache/assets/icon-256x256.png?rev=2554181)
 * [LiteSpeed Cache](https://wordpress.org/plugins/litespeed-cache/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/litespeed-cache/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/litespeed-cache/)
 * [Active Topics](https://wordpress.org/support/plugin/litespeed-cache/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/litespeed-cache/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/litespeed-cache/reviews/)

## Tags

 * [quic.cloud](https://wordpress.org/support/topic-tag/quic-cloud/)

 * 10 replies
 * 2 participants
 * Last reply from: [Tony Hisir](https://wordpress.org/support/users/copperrefections/)
 * Last activity: [6 hours, 7 minutes ago](https://wordpress.org/support/topic/wordpress-not-accepting-quic-cloud-rest-api-callbacks/#post-18987477)
 * Status: resolved