Die Ups! Ein Fehler ist aufgetreten! Fehlermeldung

Die Ups! Ein Fehler ist aufgetreten! Fehlermeldung

Alexander Wolf 10. Oktober 2016 7

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!

Interessante Links

  • config.php Tweaks
  • Hol dir unseren kostenlosen Shopware E-Mail-Kurs:

    Lerne wie du deinen eigenen Shopware 5 
    Shop erstellst und verwaltest

    7 Kommentare

    • 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/service/theme-check/21/support-ticket?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?

    8mylez Community

    SHOPWARE

    FORUM

    shopware tutorial ebook mockup

    Werde Teil einer einzigartigen Wissensdatenbank!

    Zum 8mylez Shopware Forum

    Das Shopware eBook für Einsteiger!

    shopware tutorial ebook mockup
    Ausführliche Schritt für Schritt Anleitungen, Tipps & Tricks für alle, die gerne am eigenen Shopware Shop basteln.
    Jetzt kaufen

    Hol dir 

    wertvolle Tipps 
    für deinen
    Shopware Shop

    Wir zeigen dir, wie du deinen
    Shopware 5 Shop optimieren
    kannst.


    Trage einfach deine
    E-Mail Adresse ein:

    Beliebt

    Was du über die Shopware 5 Theme Struktur wissen musst und wie du ein eigenes Template erstellst
    Theme: Eigenes Listing Layout erstellen
    Logo Größe anpassen mit Less für Shopware 5
    Staging Umgebung – Was ist das und warum brauchst du eine?
    4 Gründe warum du Shopware 5 lokal mit MAMP installieren solltest und wie du das anstellst
    Shopware Logo aus dem Footer entfernen
    Wie du jedes Icon in Shopware 5 anpassen kannst
    Shopware 5 - Wie du deine Shop Geschwindigkeit optimierst
    Wie Cronjobs bei Shopware funktionieren und wie du sie richtig einstellst
    Vorsicht Shopware Update! Was du beim Updaten beachten musst
    © 2017 by 8mylez. Powered by Goltfisch GmbH.