Stated in many posts on this site is the lack of a traffic generating goal. When I first set up the site permalinks defaulted to “Plain” or I set them to “Plain.” I don’t remember. Every URL for a page, post, comment, or view ended with something like /?p=59 or /?p=128. It kept the URLs short but provided no other real benefit.
Recently I began to think about changing the permalinks to title style. I now appreciate having some description of the page in the URL and wanted to enable it for this site. Plus it is supposed to help with search engine ranking if the URL is descriptive. Simple enough, change the Permalink Structure from Plain to Post name.

Not so simple.
The change saves without error and the site functions as expected when browsed afterward. The URLs all include the title in the link rather than ending /?p=xx. All seems well. Then edit an existing draft or published post or create one. When saved as draft or attempting to publish, an invalid JSON message is displayed. The edits, or new post, will not be saved and cannot be published!

Start tracking down “not a valid JSON response” with “WordPress” and got plenty of hits. As is usual when there’s lots of hits, there is agreement across articles about many of the settings to review for a solution. And none of the common solutions applied! The conditions were already as specified or making the change didn’t make saving edits in the block editor possible. Same for the solutions that weren’t common to all articles. Either conditions already as specified or the change didn’t resolve the problem.
I turned off the block editor and used the classic editor. Posts could be edited and saved and new posts could be created and saved as draft or published. The site was working, and with Post name permalinks, but nothing could be edited or created with the block editor, the classic editor needed to be used.
Trying to get a handle on the problem I reviewed the server logs, the web server logs, enabled and reviewed the WordPress logs, monitored console output in my browser. I also tried editing from different operating systems and with different browsers. The problem was consistent regardless the OS or browser used while editing. All I was able to find was that files in a wp-json folder weren’t being found.
With this information I searched the server from / for a path that includes wp-json. There is no path with that string. Now a new search focus for troubleshooting. Rather than WordPress and the JSON error, WordPress and missing wp-json module. Eventually I found some articles that recommended AllowOverride all be enabled for the web server’s directory statement.
I tested and it worked! Post name Permalinks could be enabled and the block editor worked as expected. But I couldn’t reconcile enabling that directive for all sites on the server. Fortunately the <Directory> statement can be in a <VirtualHost> statement. This site’s <VirtualHost> statement now contains a <Directory> statement with AllowOverride all. Restart the server and *boom* the site works and editing in the block editor works.
It is surprising to me that not one of the WordPress related troubleshooting articles I found, that had in agreement at least a handful of steps among them, ever mentioned the Apache <Directory> statement.
The troubleshooting tree that finally worked, tracking down reasons for missing wp-json path, wasn’t hinted at in the initial error message, searches with “WordPress” and “the response is not a valid JSON response” kept turning up the same potential causes, none of which included discovering the missing wp-json, how to troubleshoot it, or that a web server configuration requirement, not a WordPress setting, resolved the issue.
When troubleshooting keep digging, and try different searches if what first turns up doesn’t help. Need to keep digging until the corrective action is found. Even if the cause or messages from it can’t be found. Apache log level was set to info and there was noting with the term “wp-json” found in any log.