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 Administrador do Commerce.

Descrição description

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

Observação: 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 de vitrine ou ao Administrador resulta no erro 404 (a página "Ops, nossas más…") após a execução das operações com as atualizações agendadas para os ativos de conteúdo de loja usando o Armazenamento temporário (atualizações para os ativos de conteúdo de loja agendados usando o módulo Magento_Staging). 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: remoção da data/hora final de uma atualização programada.

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":

flag_vesion
update_exists
1560427321
0

1 row in set (0.00 sec)

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":

flag_vesion
update_exists
1560427321
1

1 row in set (0.00 sec)

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

Resolução resolution

  1. Execute a seguinte consulta para excluir o link inválido para a tabela staging_update: 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, 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
3d58f420-19b5-47a0-a122-5c9dab55ec7f