Die Ups! Ein Fehler ist aufgetreten! Fehlermeldung

Die Ups! Ein Fehler ist aufgetreten! Fehlermeldung

Alexander Wolf 10. Oktober 2016 10

Diese Fehlermeldung ist uns leider sehr bekannt.

Ups! Ein Fehler ist aufgetreten!

Wir wurden bereits über das Problem informiert und arbeiten an einer Lösung, bitte versuchen Sie es in Kürze erneut.

Meistens treten die Fehler genau dann auf, wenn du sowieso keine Zeit hast.

Zum Beispiel um 23:00, wenn man kurz noch eine kleine wichtige Änderung gemacht hat.

Wenn du nicht die halbe Nacht damit verbringen willst den Fehler zu raten, zeigen wir dir wie du die echte Fehlermeldung auslesen kannst.

Die Fehlermeldung

Ups! Ein Fehler ist aufgetreten!

Ups!

Diese vier Zeichen können einen Shopbetreiber gerne mal in den Wahnsinn treiben.

Doch, diese Fehlermeldung hat auch viel positives.

Immer dann wenn wir etwas falsch gemacht haben, wird die Fehlermeldung angezeigt. Manchmal bist du es nicht direkt gewesen, sondern ein Plugin oder ein Kunde hat etwas falsch gemacht.

So wird der Kunde über einen Fehler informiert, jedoch weiß er nicht um welchen es sich handelt. Wer möchte seinen Kunden schon genau zeigen warum es der Fehler aufgetreten ist?

Sie dient auch als Schutz vor böswilligen Computerspezialisten die versuchen könnten Informationen aus der Fehlermeldung zu ziehen und so unbefugt in den Shop eindringen.

Nichtsdestotrotz bringt uns die Fehlermeldung nicht viel wenn wir den Fehler schnell und einfach lösen wollen.

Aber es gibt mehrere Möglichkeiten die Fehlermeldung besser zu verstehen und das Problem zu finden.

Die Fehlermeldung entschlüsseln

Wir schauen uns drei Möglichkeiten an wie du mit der Fehlermeldung umgehen kannst. Damit dein Shop wieder voll funktionsfähig ist.

Möglichkeit 1: config.php anpassen

In der config.php wird unsere Konfiguration für den Shop gespeichert. In den meisten Fällen stehen dort nur die Zugangsdaten zur Datenbank. Der Rest wird von Shopware standardmäßig gesetzt.

Diese Standardeinstellungen können wir überschreiben.

Achtung: Die Debug Einstellungen sollten nur temporär für die Fehlersuche gesetzt werden. Sobald der Fehler behoben ist, sollten die Einstellungen wieder entfernt werden, damit der Kunde nicht die detaillierten Fehlermeldungen zu Gesicht bekommt.

Du musst die config.php Datei (auf der obersten Ebene) öffnen und folgenden Code ergänzen:

'front' => [
    'showException' => true,
    'throwExceptions' => true,
    'noErrorHandler' => false,
],
 
//Zeige Low-Level PHP-Fehler
'phpsettings' => [
    'display_errors' => 1,
],
 
// Template-Cache
'template' => [
    'forceCompile' => true,
],
 
// Backend-Cache
'cache' => [
    'backend' => 'Black-Hole',
    'backendOptions' => [],
    'frontendOptions' => [
        'write_control' => false
    ],
],
 
// Http-Cache
'httpCache' => [
    'enabled' => true, // true or false
    'debug' => true,
],

Im Prinzip reichen Zeilen 8-10 aus um den Fehler detaillierter anzuzeigen. Aber mit den anderen Einstellungen schalten wir den Cache erstmal ab und sagen dem Theme, dass es bei jedem Aufruf kompiliert werden soll.

So sieht unsere ganze config.php aus:

<?php return array (
  'db' =>
  array (
    'host' => 'localhost',
    'port' => '3306',
    'username' => 'xxxx',
    'password' => 'xxxx',
    'dbname' => 'meinshop.local',
  ),
  'front' => [
      'showException' => true,
      'throwExceptions' => true,
      'noErrorHandler' => false,
  ],

  //Zeige Low-Level PHP-Fehler
  'phpsettings' => [
      'display_errors' => 1,
  ],

  // Template-Cache
  'template' => [
      'forceCompile' => true,
  ],

  // Backend-Cache
  'cache' => [
      'backend' => 'Black-Hole',
      'backendOptions' => [],
      'frontendOptions' => [
          'write_control' => false
      ],
  ],

  // Http-Cache
  'httpCache' => [
      'enabled' => true, // true or false
      'debug' => true,
  ],
);

Speichern, Cache leeren und die Seite neuladen!

Wenn du alles richtig gemacht hast, solltest du jetzt eine detaillierte Fehlermeldung sehen:

Detaillierte Fehlermeldung

Jetzt siehst du ganz genau in welcher Datei sich der Fehler befindet. Ich habe aus Versehen den schließenden Tag ({/block}) des Blocks vergessen.

Nachdem du den Fehler behoben hast, solltest du auf jeden Fall die Debug Einstellungen wieder aus der config.php rausnehmen.

Möglichkeit 2: Fehlermeldung per Mail schicken lassen

Die nächste Möglichkeit lässt im Verborgenen nach dem Fehler suchen ohne, dass im Frontend sichtbar wird wo der Fehler ist. Dazu musst du auch nichts im Code anpassen.

Es reicht wenn du im Backend die passende Einstellung vornimmst.

Dazu musst zunächst sicherstellen, dass deine E-Mail Adresse in den Stammdaten des Shops hinterlegt ist. Da werden die Fehlermeldungen hingeschickt!

Das kannst du unter Einstellungen > Grundeinstellungen > Shopeinstellungen > Stammdaten > Shopbetreiber E-Mail

Stammdaten Shopbetreiber E-Mail einstellen

Nachdem das geklärt ist, musst du den Versand der Fehlermeldung per Mail aktivieren.

Wieder unter Einstellungen > Grundeinstellungen > System > Log > Fehler an Shopbetreiber senden

Stammdaten Shopbetreiber E-Mail einstellen

Wenn du die Checkbox auf Ja setzt und speicherst ist alles erledigt.

Zum Schluss nochmal den Cache leeren und die Seite neuladen im Frontend (mit dem Fehler) und du solltest eine Email mit der detaillierten Fehlermeldung und weiteren Informationen erhalten.

So kannst du den Fehler schnell beheben und niemand bekommt es mit.

Möglichkeit 3: Fehlermeldung in der Log Datei auslesen

Für den Fall, dass du einem Entwickler (oder anderen Menschen) Zugang zu den Fehlern ermöglichen willst, kannst du dir die Log Dateien anschauen.

Die Log Dateien finden wir im Ordner /var/log/. Diese werden pro Tag einzeln angelegt. Sogar einige Plugins speichern ihre Fehler in diesem Log Ordner. Daher lohnt sich auch bei Plugin Fehlern ein Blick in den Ordner.

In den Log Dateien werden die Fehler gespeichert, wenn die config.php Datei nicht wie in Möglichkeit 1 angepasst wurde.

Unser Fehler den wir weiter oben debuggt haben würde dann so aussehen:

[2016-10-10 11:06:18] core.ERROR: exception 'SmartyCompilerException' with message 'Syntax Error in template "/Users/XXX/Projects/meinshop.local/themes/Frontend/MeinTheme/frontend/detail/index.tpl"  on line 3 "{block name='frontend_detail_data_attributes_attr1'}" unmatched {block} {/block} pairs' in /Users/XXX/Projects/meinshop.local/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php:657 Stack trace: 
#0 /Users/XXX/Projects/meinshop.local/engine/Library/Smarty/sysplugins/smarty_internal_compile_extends.php(88): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unmatched {bloc...') 
#1 /Users/XXX/Projects/meinshop.local/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(475): Smarty_Internal_Compile_Extends->compile(Array, Object(Smarty_Internal_SmartyTemplateCompiler), Array, NULL, NULL) 
#2 /Users/XXX/Projects/meinshop.local/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(249): Smarty_Internal_TemplateCompilerBase->callTagCompiler('extends', Array, Array) 
#3 /Users/XXX/Projects/meinshop.local/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(2388): Smarty_Internal_TemplateCompilerBase->compileTag('extends', Array) 
#4 /Users/XXX/Projects/meinshop.local/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(3101): Smarty_Internal_Templateparser->yy_r36() 
#5 /Users/XXX/Projects/meinshop.local/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(3201): Smarty_Internal_Templateparser->yy_reduce(36) 
#6 /Users/XXX/Projects/meinshop.local/engine/Library/Smarty/sysplugins/smarty_internal_smartytemplatecompiler.php(105): Smarty_Internal_Templateparser->doParse(10, '\n\n') 
#7 /Users/XXX/Projects/meinshop.local/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(192): Smarty_Internal_SmartyTemplateCompiler->doCompile('{extends file='...') 
#8 /Users/XXX/Projects/meinshop.local/engine/Library/Smarty/sysplugins/smarty_internal_template.php(187): Smarty_Internal_TemplateCompilerBase->compileTemplate(Object(Enlight_Template_Default)) 
#9 /Users/XXX/Projects/meinshop.local/engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php(155): Smarty_Internal_Template->compileTemplateSource() 
#10 /Users/XXX/Projects/meinshop.local/engine/Library/Enlight/View/Default.php(274): Smarty_Internal_TemplateBase->fetch() 
#11 /Users/XXX/Projects/meinshop.local/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(216): Enlight_View_Default->render(Object(Enlight_Template_Default)) 
#12 /Users/XXX/Projects/meinshop.local/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(242): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->renderTemplate(Object(Enlight_Template_Default)) 
#13 /Users/XXX/Projects/meinshop.local/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->render() 
#14 [internal function]: Enlight_Controller_Plugins_ViewRenderer_Bootstrap->onPostDispatch(Object(Enlight_Controller_ActionEventArgs)) 
#15 /Users/XXX/Projects/meinshop.local/engine/Library/Enlight/Event/Handler/Default.php(91): call_user_func(Array, Object(Enlight_Controller_ActionEventArgs)) 
#16 /Users/XXX/Projects/meinshop.local/engine/Library/Enlight/Event/EventManager.php(214): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs)) 
#17 /Users/XXX/Projects/meinshop.local/engine/Library/Enlight/Controller/Action.php(202): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs)) 
#18 /Users/XXX/Projects/meinshop.local/engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('indexAction') 
#19 /Users/XXX/Projects/meinshop.local/engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) 
#20 /Users/XXX/Projects/meinshop.local/engine/Shopware/Kernel.php(177): Enlight_Controller_Front->dispatch() 
#21 /Users/XXX/Projects/meinshop.local/vendor/symfony/http-kernel/HttpCache/HttpCache.php(487): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 
#22 /Users/XXX/Projects/meinshop.local/engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) 
#23 /Users/XXX/Projects/meinshop.local/vendor/symfony/http-kernel/HttpCache/HttpCache.php(444): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) 
#24 /Users/XXX/Projects/meinshop.local/vendor/symfony/http-kernel/HttpCache/HttpCache.php(344): Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch(Object(Symfony\Component\HttpFoundation\Request), true) 
#25 /Users/XXX/Projects/meinshop.local/engine/Shopware/Components/HttpCache/AppCache.php(178): Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true) 
#26 /Users/XXX/Projects/meinshop.local/vendor/symfony/http-kernel/HttpCache/HttpCache.php(210): Shopware\Components\HttpCache\AppCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true) 
#27 /Users/XXX/Projects/meinshop.local/engine/Shopware/Components/HttpCache/AppCache.php(114): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 
#28 /Users/XXX/Projects/meinshop.local/shopware.php(113): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) 
#29 {main} [] {"uid":"0f7474e"}

Auch hier lässt sich sehr gut erkennen in welcher Datei es zum Problem kommt. Sogar was der Grund dafür ist.

Abschluss

Mit diesen Möglichkeiten bist du gewappnet dich mit jeder neuen Ups! Fehlermeldung anzulegen und sie zu bezwingen.

Wir wünschen dir viel Spaß und Erfolg bei der Fehlersuche.

Happy Debugging!

10 Kommentare

  • seid Tagen kommt bei Willhaben aber nur bei der Fahrzeugsuche die Meldung upps bei der suche ist ein Fehler aufgetreten, bitte versuchen sie es erneut, das geht seid 2 Wochen so. Am Computer gegenüber geht es ohne Probleme was ist da los? In allen anderen seiten von Willhaben komm ich rein
  • Alex mein Bester!!

    Du hast mich wieder auf die Spur gebracht. Da kam tatsächlich dieser Fehler - ich also wieder mal hier gelandet und denke mir - mal sehen was die vorschlagen. Wohlgemerkt nach 26 Std. am Rechner - gähn. ^^

    Dann wollte ich die config.php so anpassen, dass man die Fehler angezeigt bekommt (mach ich viel zu selten) was nach dem Shop Cache löschen nicht wollte. Also erstmal aufgeregt. Dann nochmal abgeregt und einfach auch den Browser Cache gelöscht - der Fehler wurde immer noch nicht angezeigt. Dafür aber die Seite, so wie sie es sollte.

    Ich wünsch dir was!
    Ein Shopware Enthusiast ;)
  • Hey Atilla,

    freut mich sehr, dass wir hilfreich sein konnten :)

    Gruß
    Alexander
  • Danke wie immer für die schöne erklärung nur leider komme ich nicht weiter !!

    Ich habe folgendes Problem !!

    Ich bin gerade dabei den shop aufzubauen !

    wenn ich eine Test Bestellung durchführe kommt folgendes .

    Ich gehe auf die Seite suche mir das testprodukt aus lege es in den Warenkorb
    Regestriere mich , wähle Vorkasse aus und Standard Versand und klicke auf weiter nun kommt die schöne ups meldung . Das ist an dieser Stelle im Prozess sehr schlecht !

    Die Message sieht wie folgt aus.

    Shopware\Components\CSRFTokenValidationException: The provided X-CSRF-Token for path "/checkout/saveShippingPayment/sTarget/checkout/sTargetAction/index" is invalid. Please go back, reload the page and try again. in /html/shopware/engine/Shopware/Components/CSRFTokenValidator.php:151
    Stack trace:
    #0 /html/shopware/engine/Library/Enlight/Event/Handler/Default.php(91): Shopware\Components\CSRFTokenValidator->checkFrontendTokenValidation(Object(Enlight_Controller_ActionEventArgs))
    #1 /html/shopware/engine/Library/Enlight/Event/EventManager.php(214): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
    #2 /html/shopware/engine/Library/Enlight/Controller/Action.php(141): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
    #3 /html/shopware/engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('saveShippingPay...')
    #4 /html/shopware/engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
    #5 /html/shopware/engine/Shopware/Kernel.php(180): Enlight_Controller_Front->dispatch()
    #6 /html/shopware/vendor/symfony/http-kernel/HttpCache/HttpCache.php(491): Shopware\Kernel->handle(Object(Enlight_Controller_Request_RequestHttp), 1, true)
    #7 /html/shopware/engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
    #8 /html/shopware/vendor/symfony/http-kernel/HttpCache/HttpCache.php(258): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
    #9 /html/shopware/vendor/symfony/http-kernel/HttpCache/HttpCache.php(275): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
    #10 /html/shopware/engine/Shopware/Components/HttpCache/AppCache.php(133): Symfony\Component\HttpKernel\HttpCache\HttpCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
    #11 /html/shopware/vendor/symfony/http-kernel/HttpCache/HttpCache.php(206): Shopware\Components\HttpCache\AppCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
    #12 /html/shopware/engine/Shopware/Components/HttpCache/AppCache.php(114): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #13 /html/shopware/shopware.php(117): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
    #14 {main}


    Und ich habe keinen Plan. wie ich da durchblicken soll bin in der Sache echt Anfänger.
    Ich würde mich freuen wenn du mir Helfen kannst irgendwie.
  • Hey Martin,

    manchmal kannst du das Problem lösen indem du den Browser Cache leerst. Der CSRF-Token Fehler kann mehrere Ursprünge haben.

    Prüfe deine Plugins und deinen Browser Cache. Sollte das nicht helfen, kann ich dir empfehlen unser kleines Support Ticket zu buchen: https://store.8mylez.com/support-ticket-4h?c=11

    Dann können wir uns das genauer anschauen!

    In den meisten Fällen reicht es aus wenn du den Browser Cache leerst. Du könntest die CSRF Token Überprüfung abschalten, wovon ich dir aber stark abraten würde. Mehr Infos findest du auch in der Shopware Dokumentation: https://developers.shopware.com/developers-guide/csrf-protection/

    Gruß
    Alexander
  • Die Anleitung zum Versandkosten Modul lesen würde den Fehler ebenfalls vermeiden :)
  • Hallo You,

    das ist richtig. Manchmal sind es nur Kleinigkeiten die falsch gemacht werden. Das ist die Suche nicht immer einfach.

    Gruß
    Alexander
  • Aber hier und da wäre es gut, wenn Shopware bei einer Fehleingabe sofort eine Warnmeldung ausgeben würde. Beispiel: Der - noch etwas unkundige - Mitarbeiter eines Shop-Betreibers möchte abweichende Versandkosten definieren. Im Fenster unter dem Reiter "Erweiterte Einstellungen" findet er das Fenster "Eigene Bedingungen". Da denkt er sich: Prima, da kann ich eintragen, dass das Produkt nur an Personen über 18 Jahren versandt wird. Er macht diesen Eintrag, speichert alles. Danach treten nacheinander die folgenden Fehler auf: Zunächst werden die betreffenden Produkte nicht mit den gesonderten Versandkosten ausgewiesen. Einige Zeit später kann der Warenkorb nicht mehr aufgerufen bzw. bearbeitet werden - und zwar Shop-übergreifend. Warum? Weil tatsächlich mit "Eigene Bedingungen" Programmcode gemeint ist, der da eingegeben werden kann, um ganz spezielle Abhängigkeiten zu definieren. Ein Fehlerhinweis direkt nach der Eingabe oder spätestens beim Abspeichern hätte das nachfolgende Desaster verhindern können.
  • Hallo Shoppi,

    das stimmt! Das Fehlermanagement im Allgemeinen ist noch sehr Entwicklerlastig. Ich denke das wird sich mit der Zeit verbessern.

    Der Optimalfall wäre wenn solche Fehler vor der Entstehung unterbunden werden und somit gar nicht auftreten.

    Gruß
    Alexander

Was denkst du?

Beliebt

Was du über die Shopware 5 Theme Struktur wissen musst und wie du ein eigenes Template erstellst
Social Media Icon mit Link im Footer
Logo Größe mit Less für Shopware 5 anpassen
Shopware Theme: Eigenes Listing Layout erstellen
Freitextfelder im Shopware Frontend ausgeben

Sicher Dir die besten Shopware 6
Tipps & Tricks

Trag Dich ein und Du erhältst unser Shopware 6 Whitepaper kostenlos!
Trag dich für unseren Newsletter an, im Anschluss erhältst Du das Whitepaper. 

Mit dem Abschicken Deiner Daten akzeptierst Du unsere Datenschutzerklärung.

Entdecke unsere ebooks

Unsere Standorte

Zentrale 

Technologiepark 23
33100 Paderborn


Leipzig
Bernhardstraße 34
04315 Leipzig

Kontakt

Über 8mylez

✓ 38 Mitarbeiter

✓ Shopware Gold Partner

✓ 40.000+ Plugin Downloads

✓ 160+ betreute Shops

✓ Full-Service Shopware Agentur

✓ 70 Shopware Videos auf Youtube

✓ Alle Shopware Zertifizierungen

Social


Unsere Partner
© 2024 by 8mylez GmbH //  Impressum + Datenschutz