Not valid JSON
-
As I go through the setup procedure, at the end, I recieve a number of
“The response is not a valid JSON response.”
error messages. The setup process shows the successful setup message, but the setup is actually not done.
The page I need help with: [log in to see the link]
-
Hi @horvatt,
Glad you reached out!
That “The response is not a valid JSON response” message usually means WordPress expected a clean JSON reply from the REST API during onboarding, but got something else back instead (HTML, a block page, a PHP notice, or a blocked request). The setup UI can still show a success message even when some of the save steps failed, which matches what you’re seeing. Kadence Security’s setup relies on the REST API, including methods like PUT, so the requests need to reach
/wp-json/cleanly.Here’s what to try on your site:
- Visit
https://yoursite.com/wp-json/in a browser (use your real domain). You should see JSON, not an error page, login page, or blank screen. - Go to Tools → Site Health and check whether the REST API test is failing. If it is, Site Health often shows useful detail about why.
- Go to Settings → Permalinks and click Save Changes without changing anything, then try the setup again.
- Ask your host to confirm these REST HTTP methods are allowed: GET, POST, PUT, PATCH, DELETE, and OPTIONS. Some hosts (especially shared/Windows setups) block some methods and that breaks onboarding.
- Temporarily deactivate other plugins (especially caching, firewall/WAF, and optimization plugins), then retry setup. We’ve seen other plugins inject output that corrupts the JSON response.
- If you have <code class=””>WP_DEBUG_DISPLAY enabled, set it to false in wp-config.php. Printed PHP notices/warnings can also break JSON responses.
If it still fails, open your browser’s Developer Tools → Network tab, run through setup again, and look for the failing
/wp-json/ithemes-security/request. A screenshot of that request’s status code and response body would help a lot.I hope this helps!
Hi
I have the same issue as described above. Following the normal setup on a hosting where I have done this ton of times. 🙂
I tried clearing caches, removing and reinstalling the plugin, saving permalinks, look at site health, WP-JSON is working fine, …
Screenshot of errors:
Screenshot of Network Tab as asked:
Failing request details:
pe @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
de @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
le @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
Z @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
ce @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
Z @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
apiFetch.W @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
r @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
ue @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
c @ https://cobb-bikes.be/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8:2
API_FETCH @ https://cobb-bikes.be/wp-content/plugins/better-wp-security/dist/packages/data.js?ver=18164e7f1600e6331b74:1
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
l @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
n @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
i @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
f @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
m @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
push.96691.Z.API_FETCH_BATCH @ https://cobb-bikes.be/wp-content/plugins/better-wp-security/dist/packages/data.js?ver=18164e7f1600e6331b74:1
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
reduxRoutine.b.any @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
u @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
l @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
n @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
callback @ https://cobb-bikes.be/wp-content/plugins/better-wp-security/dist/pages/settings.js?ver=5b07dca3203d83be8d6e:4
$t @ https://cobb-bikes.be/wp-content/plugins/better-wp-security/dist/pages/settings.js?ver=5b07dca3203d83be8d6e:1
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
reduxRoutine.b.any @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
u @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
k @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
l @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
n @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/redux-routine.min.js?ver=64f9f5001aabc046c605:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/data.min.js?ver=1756b6a2676c1b3369ab:2
(anonymous) @ https://cobb-bikes.be/wp-content/plugins/better-wp-security/dist/pages/settings.js?ver=5b07dca3203d83be8d6e:4
(anonymous) @ https://cobb-bikes.be/wp-content/plugins/better-wp-security/dist/5596.js?ver=2d3069b696bb10c3cae3:2
Id @ https://cobb-bikes.be/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1:165
Ji @ https://cobb-bikes.be/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1:179
Hi @ https://cobb-bikes.be/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1:179
Hk @ https://cobb-bikes.be/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1:178
Rk @ https://cobb-bikes.be/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1:197
xb @ https://cobb-bikes.be/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1:196
Li @ https://cobb-bikes.be/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1:189
db @ https://cobb-bikes.be/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1:79
(anonymous) @ https://cobb-bikes.be/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1:184Hi,
I’m seeing the exact same issue and wanted to add another confirmed data point, since it seems to affect multiple, completely unrelated hosting environments — not a single host’s configuration.
I’m experiencing this on four different websites, spread across two different hosting providers (IONOS and Webgo), all with different hosting packages. On all of them, saving any setting in Kadence Security (and even attempting a fresh installation on one site) fails with:
“The response is not a valid JSON response”
I’ve already ruled out several common causes:
- Disabled all other plugins one by one — issue persists
- Temporarily disabled my firewall plugin (NinjaFirewall) — issue persists
- Confirmed the regular REST API works fine (
/wp-json/wp/v2/postsreturns 200 OK) - The specific endpoint that fails is
/wp-json/batch/v1— it returns a 403, while all other REST endpoints work normally - Site Health shows no critical issues, permalinks were re-saved, caches cleared
Given that this happens simultaneously across two unrelated hosts and four separate installations, it looks less like a server-side configuration issue and more like something related to how the plugin’s batch save mechanism (
API_FETCH_BATCH) is being handled right now — this matches what another user reported here just a few hours ago, with the identicalAPI_FETCH_BATCHcall failing in their console output as well.Has there been a recent update to the plugin or to the batch save mechanism that could explain this? Any update on a fix would be much appreciated, as this is currently blocking basic settings management across all affected sites.
Thanks for looking into it!
So its not just me then. The developer needs to resolve this if its been reported over 5 days ago.
If you are on the free version I would jump to another security plugin called AIOS until Kadence decide to fix it. To be honest having them both has benefits.
So doing some further investigation to why this is happening.
Doing the usual:- Re-saving Permalinks
- Logging out and back in
- Clearing plugin / browser cache
- Disabling all plugins except Kadence
Does nothing to fix the issue.
Looking at my Network under Console Log this is what I see when I try and save anything inside the plugin
https://www.yourwebsite.co.uk/wp-json/ithemes-security/v1/settings/version-management?_locale=user{
"code": "rest_module_not_found",
"message": "No module was found with that id.",
"data": { "status": 404
}
}Most likely explanation
You probably have a mixed or incomplete Kadence/iThemes Security installation, for example:
- the admin JavaScript expects the Pro
version-managementmodule; - but the PHP files currently loaded are the free version;
- the Pro add-on/plugin is inactive;
- or an update left old JavaScript files mixed with newer PHP files.
This also explains the “valid JSON” message: the request does return valid JSON, but it is an error response, so the Kadence interface reports it generically.
Recommended repair
- Back up the site/database.
- Deactivate Kadence/Solid/iThemes Security.
- Delete the plugin through the Plugins screen. Do not run any tool that removes its settings or database records.
- Clear Docket Cache, WP Rocket and any Cloudflare cache.
- Install a completely fresh copy of the edition you actually use:
- the current WordPress.org version for free/Basic; or
- a fresh Pro ZIP from your account.
- Activate it and sign out of WordPress.
- Sign back in and reload the Security settings page using
Ctrl + F5.
In my instance
Theversion-management404 is therefore not Fasthosts or ModSecurity blocking the REST API. It is an internal Kadence/iThemes module mismatch. The separate/wp-json/batch/v1403 may disappear once the plugin files and admin scripts match, although its response body should still be checked if it remains.Having the exact same issue. Everything else works fine, setting the plugin up in a hosting environment I did about 100 times in.
Hi everyone,
Thanks for sending extra details of this issue, that helped us investigate the problem further.
This thread is connected to this report: https://wordpress.org/support/topic/kadence-security-settings-can-no-longer-be-saved-rest-api-batch-v1-blocked-now/
What’s happening is that WP recently patched a critical issue involving the core REST batch endpoint (
/wp-json/batch/v1, sometimes called wp2shell). After that, some hosts and WAFs (Imunify360 is one example) added emergency rules that blockbatch/v1requests.Our plugin’s setup and settings screens use that core batch endpoint to save changes, so when the WAF returns a 403 or an HTML block page instead of JSON, WP surfaces it as “The response is not a valid JSON response” and the save/setup step fails even if the UI briefly looks successful.
I was able to reproduce the same error on a test site (WordPress 7.0.2) by simulating a WAF block with a small mu-plugin that returns 403/HTML for
/batch/routes: https://share.zight.com/v1upNR9y (for repro only, don’t add on a live site). With that block in place, Security settings fail with the same JSON error: https://share.zight.com/yAuE6jB0. When I remove the blanket block, saving works again. So this is environmental: the batch endpoint is being blocked in front of WordPress, not a general REST API outage on the site.I’d recommend the following steps to resolve this:
- Update WordPress to a patched release if you haven’t already: 7.0.2+, 6.9.5+, or 6.8.6+.
- Ask your host to allow authenticated admin requests to
/wp-json/batch/v1(and?rest_route=/batch/v1), or to remove/relax the emergency wp2shell batch rule now that core is patched. You can share this message to your host if it helps:"After updating WordPress to a patched release (7.0.2/6.9.5/6.8.6), the Kadence Security plugin cannot save settings. Browser Network shows POST /wp-json/batch/v1 returning 403 from the WAF (often an emergency rule after the wp2shell/batch endpoint issue). Please allow authenticated admin access to the REST batch endpoint, or disable that emergency rule now that core is patched. Blocking anonymous batch only is fine." - After the host adjusts the rule, hard-refresh the Security screen and try saving again. In DevTools → Network, the
batch/v1request should return JSON successfully for a logged-in admin.
In the meantime, I’m also escalating this to our devs as a resilience improvement (for example, a non-batch save fallback for hosts that keep a hard block), but not as a critical hotfix, since the underlying security issue is in WP core (that’s already patched) and the immediate blocker is the host/WAF rule in front of
batch/v1.I hope this helps!
Thanks for digging deeper and figuring out what the problem itself is.
I have to be honest though: Some of my projects run on huge shared hosting environments which make it nearly impossible to send custom requests to and setup custom requirements with the hosting provider. That involves sending bug reports about blocked resources which might have been a security concern earlier.
Therefore Kadence Security is not usable for any client projects we are setting up right now – which is a bummer ’cause I thought it was a wonderful and well thought out plugin.Hi chandelierr,
I agree to Valentin. What you suggest is not an option. Most of my customers have their website on huge shared hosting environments. Do I understand it right, that Kadence doesn’t regard it as a priority to update their functionality to the latest WordPress version? I have been working with Ithemes and Solid Security for many years. And it was always a great plugin. But after this I have to consider changing the security solutions for all websites, because the problem is not only the new installation, it’s also that there is no way at all to save setting changes. I have meanwhile checked Kadence on all the websites I take care of , which means I have checked the possibility to save changes with 9 different hosters. Only one (a one man hoster) lets me save changes in Kadence.-
This reply was modified 1 week, 1 day ago by
jenja.
- Visit
You must be logged in to reply to this topic.