“Updating failed. The response is not a valid JSON response.”

Your editor's save got a reply it can't read. Get it saving by hand first. Then add the free plugin: its chat can find the cause next time.

Get the editor saving again

  1. Keep the editor tab open. Copy your new text into a document, so nothing is lost if the tab closes.
  2. In a new tab, go to Settings › Permalinks and press Save Changes without changing anything. Then press Save in the editor again.
  3. Go to Settings › General. WordPress Address (URL) and Site Address (URL) should both match your browser's address, including https.
  4. In Plugins › Installed Plugins, press Deactivate under the plugin you added or updated last. Try Save again. If it works, that's the cause.
  5. Still failing? Ask your host if their firewall, which turns away requests that look like attacks, blocks yoursite.com/wp-json/. Tell them the time you pressed Save.

These steps work without CMSHands. Keep the editor tab open while you try them, so your changes stay on screen.

A person approves every repair. Install it before anything breaks.

Install it before it breaks

Needs WP 6.3 to 7.1 and PHP 8.0 or newer. What it installs

Needs WP 6.3 to 7.1, PHP 8.0 or newer, and an administrator login. One site per install.

The download is a plugin. Turning it on connects your site to cmshands.com and adds 3 small rescue files. Deleting the plugin removes them and everything it stored. What we send

Plugins are installed from a computer. Get the plugin here instead

  • No account, no password to share

What it means

“Not a valid JSON response” means the editor sent your changes to your site, but the reply that came back wasn't the data it expected.

  • Your permalinks, the rules that turn a page address into a page, are out of date, so the save lands on the wrong address.
  • Your site address in Settings › General doesn't match the one in your browser: http against https, or www against no www.
  • A plugin or your theme prints extra text, such as a notice or a comment, in front of the reply.
  • A security plugin or your host's firewall blocks the save, often because the page has code, a form or an embed in it.
  • A plugin or your host switches off or blocks the REST API, the part of your site the editor saves through.

Find the cause

The block editor, where you write pages and posts, saves through your site's REST API. That's an address on your site, yoursite.com/wp-json/, that takes requests and answers in JSON. JSON is a plain data format programs use to pass information.

When you press Save, the editor sends your changes there and waits for JSON back. If anything else comes back, it shows this message. That can be an error page, a blocked request or a stray line of text.

Your changes may or may not have saved. Keep the editor open, and open the page in a new tab to see what's there.

Look at what your site sends back

Open yoursite.com/wp-json/ in a new browser tab. A working site shows a page of data that starts with {"name": and your site's name. An error page, a login screen or text before that first { is your clue.

For the exact reply, right-click the editor and pick Inspect. Open the Network tab, press Save again, and click the line shown in red. Its Response tab shows what came back.

Check Site Health

Go to Tools › Site Health. If it says “The REST API encountered an error” or “The REST API encountered an unexpected result”, open that line. It often names the problem, such as a blocked request.

Read the error log

Your error log lists problems PHP had, with the time. PHP is the language WP runs on; your host sets its version.

Look for lines from the minute you pressed Save. Many hosts show the log in their control panel, often under Logs.

Fix it by cause

Permalinks are out of date

If permalinks, the rules that turn a page address into a page, are out of date, the save lands on the wrong address. Go to Settings › Permalinks and press Save Changes without changing anything. That writes the rules again.

Some hosts keep these rules on the server, where WP can't write them. If saving permalinks doesn't help, ask your host to check them.

Your site address doesn't match

In Settings › General, WordPress Address (URL) and Site Address (URL) should match the address in your browser. Watch for http against https, and www against no www.

Change them only if you're sure. A wrong address can lock you out of your dashboard, the screens you log in to at yoursite.com/wp-admin. If the boxes are greyed out, they're set in wp-config.php, and your host can help.

A plugin or theme adds text to the reply

Some plugins print a line of text, a notice or a comment, in front of everything they touch. In a JSON reply, that line breaks the data. It's the cause we set up on our test site, a WP site we run to try every task before we write about it.

Switch off the plugin you added or updated last in Plugins › Installed Plugins, and try Save again. Still failing? Switch the others off one at a time, and try after each. Then try a default theme, such as Twenty Twenty-Five, in Appearance › Themes.

Switching a plugin off keeps its settings, and Activate brings it back as it was. Don't delete plugins to test them.

A firewall blocks the save

Security plugins and host firewalls sometimes block a save. Code, a form or an embed in the page can look like an attack to them. If it fails on one page only, this is a likely cause.

Check your security plugin's log for a blocked request at that time. If it's your host's firewall, ask your host to allow requests to /wp-json/ from your dashboard. Give them the time you pressed Save.

Get by while you look

The Classic Editor plugin, from wordpress.org, saves pages without the REST API, so the message goes away. It hides the problem rather than fixing it. Other parts of your site that use the REST API stay broken.

Stop it coming back

Add or update one plugin at a time, and save a page after each. If saving breaks, you know which one did it. Test a save again after you move hosts or switch to https.

With CMSHands on your site before the error, you can ask the chat what's causing it. It reads your error log, your plugins and settings to find the cause.

We tried it there. On Oct 14, 2026, we added a small test plugin that prints a comment in front of every REST API reply. Saving the About page then failed with this message.

We asked the chat what was causing it. It loaded a page the way a visitor would, read the error log, listed the plugins and read a file on the site. It named the plugin and showed the line it adds in front of every reply.

It said visitors and our pages weren't affected, only saving. It started to prepare the switch-off for our OK, but said a firewall on the site refused that request. Nothing changed, and it told us to switch the plugin off under Plugins.

Next time

On a site that had CMSHands before the error, ask the chat what's causing it. It reads your log, plugins and settings, to find the cause.
  • Ask “What's causing it?” and it reads your log, plugins and settings to find the cause. Install it first.
  • Ask “What are the errors on my site?” and it reads your PHP error log for you.
  • It tells you in plain English what went wrong and what to try, on a site that has CMSHands.
More it does here (1)
  • If your site crashes, we prepare the fix, and a person at CMSHands approves it before it runs. Tried on our test sites; hosts differ.

Why it won't wreck your site

  • Asking changes nothing. A question only reads your site. It looks things up and tells you. No card, no button.
  • Nothing changes until you press the button. Every change comes as a card that names it. Nothing happens until you press the button or Not now.
  • A person checks every repair. When your site is down you can't reach the chat, so a person at CMSHands approves the fix before it runs.

What it won't do here

  • It can't be installed into a site that is already down.A plugin can't be added to a dashboard that won't load. Get your site back with the steps above, then install it.
  • It may not switch the plugin off for youOn our test site on Oct 14, 2026, it named the plugin, but said a firewall refused its request to switch it off. Nothing changed.
  • It can't change your host's firewall or serverIf your host blocks the save, your host has to change that. Server settings, PHP version and SSL are your host's.
  • A person approves every repairNothing in a repair runs until a person at CMSHands has checked it. It doesn't repair your site on its own.

Questions

What does “The response is not a valid JSON response” mean?

It means the editor sent your changes to your site and got back a reply it couldn't read. The editor saves through your site's REST API and expects JSON, a plain data format. An error page, a blocked request or a stray line of text in front of the reply all give this message.

How do I fix “Updating failed” in WordPress?

Start in Settings › Permalinks and press Save Changes without changing anything. Then check that both addresses in Settings › General match the one in your browser. Still failing? Switch off the plugin you added or updated last, then the others one at a time, and try saving after each.

Why won't my WordPress page update?

Most often the editor can't save through your site's REST API. Out-of-date permalinks, a mismatched site address, a plugin or a firewall gets in the way. Open yoursite.com/wp-json/ in your browser: it should show a page of data starting with {"name":. An error page or extra text there points to the cause.

Is my page lost when publishing fails?

No. The editor keeps your changes on screen while the tab stays open, so don't close it. Sometimes the save went through anyway. Copy your text into a document, then open the page in a new tab to see what's saved.

Can CMSHands find the cause for me?

Yes, if it was on your site before the error. Ask the chat what's causing it: it reads your error log, plugins and settings to find the cause. On our test site it named the plugin. It said a firewall refused its request to switch it off, and told us to do that under Plugins.

Written by CMSHands team.

Be ready for the next one

  • A person approves every repair
  • No account, no password to share
Install it before it breaks