Fel 404 på alla sidor på grund av problem med Content Staging

I den här artikeln finns en korrigering för Adobe Commerce lokalt och Adobe Commerce om molninfrastrukturproblem, där du får ett 404-fel när du öppnar en butikssida eller Commerce Admin.

Beskrivning description

Berörda produkter och versioner

  • Adobe Commerce lokal 2.2.x, 2.3.x
  • Adobe Commerce om molninfrastruktur 2.2.x, 2.3.x

Problem

Obs! Den här artikeln gäller inte den situation där du får ett 404-fel när du försöker förhandsgranska mellanlagringsuppdateringen. Öppna en supportanmälan om du stöter på det problemet.

Om du får åtkomst till en butikssida eller Admin genereras felet 404 (sidan"Hoppsan, vår dåliga…") efter att du har utfört åtgärder med schemalagda uppdateringar för att lagra innehållsresurser med Content Staging (uppdateringar för att lagra innehållsresurser som schemalagts med modulen Magento_Staging). Du kan till exempel ha tagit bort en produkt med en schemalagd uppdatering eller tagit bort slutdatumet för den schemalagda uppdateringen.

En resurs för butiksinnehåll innehåller:

  • Produkt
  • Kategori
  • Katalogprisregel
  • Kundprisregel
  • CMS Page
  • CMS Block
  • Widget

Vissa scenarier beskrivs i avsnittet Orsak nedan.

Orsak

Tabellen flag i databasen (DB) innehåller ogiltiga länkar till tabellen staging_update.

Problemet är relaterat till innehållsindelning. Nedan visas två olika scenarier. Observera att det kan finnas fler situationer som utlöser problemet.

Scenario 1: Tar bort en resurs för butiksinnehåll som:

  • har en uppdatering schemalagd med Content Staging
  • uppdateringen har ett slutdatum (vilket innebär det förfallodatum efter vilket den uppdaterade tillgången återgår till sin tidigare version)
  • uppdateringens slutdatum har passerat

Samtidigt kan problemet bero på att en borttagen tillgång inte har något slutdatum för den schemalagda uppdateringen.

Scenario 2: Tar bort slutdatum/tid för en schemalagd uppdatering.

Identifiera om ditt problem är relaterat

Kör följande DB-fråga för att identifiera om problemet som du har drabbats av är det som beskrivs i den här artikeln:

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';

Om frågan returnerar en tabell där värdet update_exists är 0, finns det en ogiltig länk till tabellen staging_update i databasen, och de steg som beskrivs i avsnittet Lösning hjälper dig att lösa problemet. Följande är ett exempel på frågeresultatet med värdet update_exists som är lika med "0":

flag_vesion
update_exists
1560427321
0

1 row in set (0.00 sec)

Om frågan returnerar en tabell där värdet update_exists är 1 eller ett tomt resultat betyder det att ditt problem inte är relaterat till mellanlagringsuppdateringar. Följande är ett exempel på frågeresultatet med värdet update_exists som är lika med "1":

flag_vesion
update_exists
1560427321
1

1 row in set (0.00 sec)

I det här fallet kan du läsa Felsökning för plats för felsökning av idéer.

Upplösning resolution

  1. Kör följande fråga för att ta bort den ogiltiga länken till tabellen staging_update: DELETE FROM flag WHERE flag_code = 'staging';.
  2. Vänta tills cron-jobbet körs (körs på upp till fem minuter om konfigurationen är korrekt) eller kör det manuellt om du inte har ställt in cron.

Problemet bör lösas direkt efter att den ogiltiga länken har åtgärdats. Om problemet kvarstår skickar du en supportanmälan.

Relaterad läsning

Metodtips för att ändra databastabeller i Commerce Implementeringspellbook.

.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f