Errore 404 su tutte le pagine a causa di un problema di gestione temporanea del contenuto
Questo articolo fornisce una correzione per il problema di infrastruttura cloud di Adobe Commerce on-premise e Adobe Commerce in cui viene visualizzato un errore 404 durante l'accesso a qualsiasi pagina storefront o a Commerce Admin.
Prodotti e versioni interessati
- Adobe Commerce on-premise 2.2.x, 2.3.x
- Adobe Commerce sull’infrastruttura cloud 2.2.x, 2.3.x
Problema
L'accesso a qualsiasi pagina della vetrina o all'amministratore genera l'errore 404 (la pagina "Ops, le nostre cattive…") dopo aver eseguito operazioni con aggiornamenti pianificati per le risorse di contenuto del negozio utilizzando Staging contenuto (aggiornamenti per le risorse di contenuto del negozio pianificate utilizzando il modulo Magento_Staging). Ad esempio, potresti aver eliminato un prodotto con un aggiornamento pianificato o rimosso la data di fine per l’aggiornamento pianificato.
Una risorsa di contenuto store include:
- Prodotto
- Categoria
- Regola prezzo catalogo
- Regola prezzo carrello
- Pagina CMS
- Blocco CMS
- Widget
Alcuni scenari sono descritti nella sezione Causa seguente.
Causa
La tabella flag
nel database (DB) contiene collegamenti non validi alla tabella staging_update
.
Il problema è relativo alla gestione temporanea dei contenuti. Di seguito sono riportati due scenari specifici; tieni presente che potrebbero verificarsi più situazioni che attivano il problema.
Scenario 1: eliminazione di una risorsa di contenuto dell'archivio che:
- ha un aggiornamento pianificato con Content Staging
- l’aggiornamento ha una data di fine (ossia la data di scadenza dopo la quale la risorsa aggiornata torna alla versione precedente)
- la data di fine dell’aggiornamento è nel passato
Allo stesso tempo, il problema potrebbe non verificarsi se una risorsa eliminata non ha una data di fine per l’aggiornamento pianificato.
Scenario 2: Rimozione della data/ora di fine di un aggiornamento pianificato.
Identifica se il problema è correlato
Per verificare se il problema riscontrato è quello descritto in questo articolo, esegui la seguente query DB:
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 la query restituisce una tabella in cui il valore update_exists
è "0", nel database esiste un collegamento non valido alla tabella staging_update
e i passaggi descritti nella sezione Soluzione aiuteranno a risolvere il problema. Di seguito è riportato un esempio del risultato della query con valore update_exists
uguale a "0":
Se la query restituisce una tabella in cui il valore update_exists
è "1" o un risultato vuoto, significa che il problema non è correlato agli aggiornamenti della gestione temporanea. Di seguito è riportato un esempio del risultato della query con valore update_exists
uguale a "1":
In questo caso, è possibile fare riferimento a Risoluzione dei problemi di inattività del sito per informazioni sulla risoluzione dei problemi.
Soluzione
-
Eseguire la query seguente per eliminare il collegamento non valido alla tabella
staging_update
:code language-sql DELETE FROM flag WHERE flag_code = 'staging';
-
Attendere l'esecuzione del processo cron (se configurato correttamente, può durare fino a cinque minuti) oppure eseguirlo manualmente se non è stato configurato cron.
Il problema deve essere risolto subito dopo aver risolto il collegamento non valido. Se il problema persiste, invia un ticket di supporto.
Lettura correlata
Best practice per la modifica delle tabelle del database nel playbook di implementazione di Commerce