Erro 404 em todas as páginas devido ao problema de preparo de conteúdo

Este artigo fornece uma correção para o problema do Adobe Commerce no local e do Adobe Commerce na infraestrutura de nuvem, em que você recebe um erro 404 ao acessar qualquer página da loja ou o Commerce Admin.

Produtos e versões afetados

  • Adobe Commerce no local 2.2.x, 2.3.x
  • Adobe Commerce na infraestrutura em nuvem 2.2.x, 2.3.x

Problema

NOTE
Este artigo não se aplica à situação em que você recebe um erro 404 ao tentar visualizar a atualização de preparo. Se você tiver esse problema, abra um tíquete de suporte.

O acesso a qualquer página da loja ou ao Administrador resulta no erro 404 (a página "Ops, nossas más…") após executar operações com atualizações agendadas para ativos de conteúdo de loja usando Armazenamento temporário (atualizações para ativos de conteúdo de loja agendadas usando o módulo Magento_Armazenamento temporário). Por exemplo, você pode ter excluído um Produto com uma atualização programada ou removido a data final da atualização programada.

Um ativo de conteúdo de armazenamento inclui:

  • Produto
  • Categoria
  • Regra de preço de catálogo
  • Regra de preço do carrinho
  • Página do CMS
  • Bloco do CMS
  • Widget

Alguns cenários são discutidos na seção Causa abaixo.

Causa

A tabela flag no banco de dados contém links inválidos para a tabela staging_update.

O problema está relacionado ao preparo de conteúdo. Abaixo estão dois cenários específicos; observe que pode haver mais situações que acionam o problema.

Cenário 1: exclusão de um ativo de conteúdo de repositório que:

  • tem uma atualização agendada com o Preparo de conteúdo
  • a atualização tem uma data final (ou seja, a data de expiração após a qual o ativo atualizado reverte para a versão anterior)
  • a data final da atualização está no passado

Ao mesmo tempo, o problema pode não ocorrer se um ativo excluído não tiver uma data final para a atualização agendada.

Cenário 2: Removendo a data/hora final de uma atualização agendada.

Identificar se o problema está relacionado

Para identificar se o problema que você está enfrentando é o descrito neste artigo, execute a seguinte consulta de BD:

   SELECT f.flag_data >'$.current_version' as flag_version, (su.id IS NOT NULL) as update_exists
   -> FROM flag f
   -> LEFT JOIN staging_update su
   -> ON su.id = f.flag_data >'$.current_version'
   -> WHERE flag_code = 'staging';

Se a consulta retornar uma tabela em que o valor update_exists é "0", então existe um link inválido para a tabela staging_update em seu banco de dados, e as etapas descritas na seção Solução ajudarão a resolver o problema. Este é um exemplo do resultado da consulta com o valor update_exists igual a "0":

update_exists_0.png

Se a consulta retornar uma tabela em que o valor update_exists é "1" ou um resultado vazio, significa que o problema não está relacionado às atualizações de preparo. Este é um exemplo do resultado da consulta com o valor update_exists igual a "1":

updates_exist_1.png

Nesse caso, você pode consultar o Solucionador de Problemas de Site Inativo para obter ideias de solução de problemas.

Solução

  1. Execute a seguinte consulta para excluir o link inválido para a tabela staging_update:

    code language-sql
    DELETE FROM flag WHERE flag_code = 'staging';
    
  2. Aguarde até que o trabalho cron seja executado (executado em até cinco minutos se configurado corretamente) ou execute-o manualmente se você não tiver o cron configurado.

O problema deve ser resolvido logo após a correção do link inválido. Se o problema persistir, envie um tíquete de suporte.

Leitura relacionada

Práticas recomendadas para modificar tabelas de banco de dados no Manual de implementação do Commerce

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a