Como corrigir Publishing failed / Updating failed (REST API)
O que é a falha ao publicar pela REST API?
A falha ao publicar pela REST API do WordPress é o erro “Publishing failed” (ou “Updating failed”) do editor de blocos. O Gutenberg não envia o post por um formulário tradicional: ele faz uma requisição AJAX para a REST API em /wp-json/wp/v2/posts. Se essa rota responde 403, 404, redireciona ou devolve HTML em vez de JSON, o editor não consegue confirmar o salvamento e mostra a falha, ainda que o texto digitado esteja certo.
Como identificar
- Mensagem “Publishing failed. The response is not a valid JSON response.” ao clicar em Publicar.
- Mensagem “Updating failed.” ao tentar atualizar um post existente.
- Ao abrir /wp-json/ no navegador, aparece um 403, um 404 ou uma página de HTML em vez de JSON.
- O Editor Clássico salva normal, mas o editor de blocos (Gutenberg) falha em todo post.
Antes de começar: Não desative a REST API por completo para resolver: o editor de blocos, o app móvel e várias integrações dependem dela. Bloqueie apenas endpoints sensíveis (como o de usuários) e mantenha o restante funcionando.
Como prevenir
- Sempre que ativar um firewall ou WAF, confirme que a rota /wp-json/ continua liberada para usuários logados
- Mantenha siteurl, home e o certificado SSL consistentes (mesmo domínio e mesmo HTTPS) para a REST API não redirecionar
- Verifique a REST API em Ferramentas > Saúde do Site após cada atualização grande de plugin de segurança ou SEO
Causa
- Plugin de segurança ou firewall (WAF) bloqueando a rota /wp-json/ da REST API.
- Regra de .htaccess ou permalink quebrado fazendo /wp-json/ retornar 404 em vez do JSON.
- Plugin de SEO ou de privacidade desativando a REST API para usuários logados.
- URL do site (siteurl/home) ou certificado SSL inconsistente, gerando redirecionamento na chamada REST.
- Erro fatal de PHP em outro plugin que injeta um aviso (warning/notice) antes do JSON, invalidando a resposta.
Como resolver
- Teste a REST API: abra https://seusite.com/wp-json/ no navegador. Se não aparecer um JSON, a rota está bloqueada ou quebrada: esse é o ponto a corrigir.
- Use a Saúde do Site: vá em Ferramentas > Saúde do Site. O WordPress avisa explicitamente quando a REST API não está acessível e mostra o código de status retornado.
- Regenere os permalinks: em Configurações > Links permanentes, clique em Salvar alterações. Isso reescreve o .htaccess e costuma destravar o /wp-json/ que retornava 404.
- Desative o firewall/segurança: via FTP, renomeie a pasta do plugin de segurança em wp-content/plugins. Se a publicação voltar, libere a rota /wp-json/ na configuração dele antes de reativar.
- Procure saída antes do JSON: ligue o WP_DEBUG_LOG e veja em wp-content/debug.log se algum plugin emite warning/notice. Esse texto sai antes do JSON e quebra a resposta da REST API.
PHP
// functions.php do tema-filho — força a REST API a usar a mesma URL/HTTPS do site
// Evita o redirecionamento que faz o Gutenberg receber HTML em vez de JSON.
add_filter( 'rest_url', function ( $url ) {
return set_url_scheme( $url, is_ssl() ? 'https' : 'http' );
} );
// Confirma que a REST API nao foi desativada por outro plugin para quem esta logado.
add_filter( 'rest_authentication_errors', function ( $result ) {
if ( true === $result || is_wp_error( $result ) ) {
return $result;
}
return $result; // mantem o comportamento padrao, sem bloquear logados
} );
Perguntas frequentes
O que significa The response is not a valid JSON response?
Significa que o editor de blocos pediu o salvamento à REST API e recebeu algo que não é JSON: um erro 403/404, um redirecionamento ou HTML. O Gutenberg precisa de JSON puro para confirmar a publicação, então qualquer outra coisa vira a falha.
Por que o Editor Clássico pública mas o Gutenberg não?
Porque o Editor Clássico salva por um formulário tradicional (admin-post), enquanto o Gutenberg usa a REST API. Se só o editor de blocos falha, o problema está na rota /wp-json/, não no conteúdo do post.
Como sei se a REST API está bloqueada?
Abra https://seusite.com/wp-json/ no navegador. Se vier um JSON com rotas, está funcionando. Se vier 403, 404 ou uma página HTML, a REST API está bloqueada ou quebrada. A tela Saúde do Site também avisa.
Um plugin de segurança pode causar a falha ao publicar?
Sim, é uma das causas mais comuns. Muitos firewalls bloqueiam /wp-json/ por padrão para reduzir exposição. Libere a rota para usuários logados na configuração do plugin em vez de desligar a REST API inteira.
Regenerar permalinks resolve a falha ao publicar?
Em muitos casos sim. Quando o /wp-json/ retorna 404, costuma ser .htaccess com regras de reescrita ausentes. Salvar em Configurações > Links permanentes reescreve o arquivo e restaura a rota da REST API.
Posso desativar a REST API para parar o erro?
Não é recomendado. O editor de blocos, o app do WordPress e várias integrações dependem da REST API. Desativá-la troca um problema por vários. Corrija a rota bloqueada e mantenha a API ativa.














