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_vesionupdate_exists156042732101 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_vesionupdate_exists15604273211 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
- Execute a seguinte consulta para excluir o link inválido para a tabela
staging_update:DELETE FROM flag WHERE flag_code = 'staging';. - 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.
.