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 em nuvem, em que você recebe um erro 404 ao acessar qualquer página da loja ou o administrador do Commerce.

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 pré-visualizar a atualização de preparo. Se você encontrar 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, nossa má…") após executar operações com atualizações programadas para ativos de conteúdo da loja usando Preparo de conteúdo (atualizações para ativos de conteúdo de armazenamento agendadas usando o Magento_Módulo de preparo). 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 CMS
  • Bloco CMS
  • Widget

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

Causa

A variável flag A tabela no banco de dados (DB) contém links inválidos para a variável staging_update tabela.

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: Excluindo um ativo de conteúdo de armazenamento 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 update_exists é "0", então um link inválido para a variável staging_update existe no banco de dados e as etapas descritas na seção Seção Solução O ajudará a resolver o problema. Veja a seguir um exemplo do resultado da query com update_exists valor igual a "0":

update_exists_0.png

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

updates_exist_1.png

Nesse caso, você pode consultar a Solução 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 o staging_update tabela:

    code language-sql
    DELETE FROM flag WHERE flag_code = 'staging';
    
  2. Aguarde a execução do trabalho cron (é 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, enviar um tíquete de suporte.

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