🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir Publishing failed / Updating failed (REST API)

Time Full Services Time Full Services
Tipo Erro interno do WP
Nome do erro Publishing failed / Updating failed (REST API) EN: Publishing failed
Severidade Grave
Descrição A falha ao publicar no WordPress (Publishing failed / Updating failed) acontece quando o editor de blocos não consegue falar com a REST API. O Gutenberg salva o post por uma chamada à REST API em /wp-json/; quando essa rota é bloqueada ou responde algo diferente de JSON, o editor exibe o erro mesmo com o conteúdo correto.

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes