Thanks @bcworkz. I know it’s not recommended but I went with
if (!empty($this->data)) {
wp_localize_script('blocknamespace-' . $this->name. '-editor-script', $this->name, $this->data);
}
And it works like a charm.
I had this same issue this morning and was stumped. Indeed it turned out it was Dreamhost’s “Extra Web Security” setting and when turned OFF the admin saves just fine.
I only notice the issue when permalinks are set to anything other than Plain Permalinks. You can see that the AJAX endpoint is different when set to non-Plain Permalinks, and I’m assuming Dreamhost’s over-active security doesn’t like it.
To be sure this wasn’t a modification I — or a theme I installed — did, I installed a fresh WordPress instance with Dreamhost’s wizard and found the issue still occurred. I also brought that to their attention.