Projektarbeit-MYP/docs/COMMON_ERRORS.md

6.1 KiB

Häufige Fehler und Lösungen - Mercedes-Benz MYP Platform

JavaScript-Fehler

1. animateCounters is not defined

Problem: Die Funktion animateCounters wird in admin.js aufgerufen, aber nicht definiert. Lösung: Funktion wurde hinzugefügt in admin.js mit Intersection Observer für bessere Performance.

2. showPrinterModal is not defined

Problem: Die Funktion showPrinterModal wird aufgerufen, aber nicht definiert. Lösung: Vollständige Modal-Funktion mit Formular-Handling wurde hinzugefügt.

3. JSON.parse: unexpected character at line 1 column 1

Problem: API-Aufrufe geben HTML statt JSON zurück (404-Fehler). Ursache: Frontend läuft auf Port 8443, Backend auf Port 5000. Lösung: Dynamische API-URL-Erkennung mit intelligentem Fallback implementiert.

API-Fehler (404 NOT FOUND)

1. /api/admin/stats/live - 404 Fehler

Problem: Live-Statistiken API gibt 404 zurück. Ursache: Port-Mismatch zwischen Frontend (8443) und Backend (5000). Lösung:

  • Dynamische API-Base-URL-Erkennung implementiert
  • Automatischer Fallback von HTTPS:8443 zu HTTP:5000
  • Verbesserte Fehlerbehandlung in der Route
  • Sichere Admin-Berechtigung-Prüfung

2. /api/admin/system/status - 404 Fehler

Problem: System-Status API gibt 404 zurück. Lösung:

  • Dynamische URL-Erkennung implementiert
  • Sichere psutil-Imports mit Fallback
  • Verbesserte Fehlerbehandlung
  • Graceful degradation wenn Systemüberwachung nicht verfügbar

3. /api/admin/database/status - 404 Fehler

Problem: Datenbank-Status API gibt 404 zurück. Lösung:

  • Dynamische URL-Erkennung implementiert
  • Sichere Datenbankpfad-Erkennung
  • Verbesserte Verbindungstests
  • Fallback für fehlende Dateien

Modal-Dialog Probleme

1. Automatische Weiterleitung zu 404-Seiten

Problem: Modal-Formulare submitten automatisch und leiten zu nicht existierenden Routen weiter. Ursache: Fehlende preventDefault() in Form-Event-Handlers. Lösung:

  • e.preventDefault() zu allen Form-Submit-Handlers hinzugefügt
  • Explizite Event-Handler-Bindung statt onclick-Attribute
  • Verbesserte Modal-Schließung nach erfolgreichen Aktionen

2. Modal öffnet und schließt sofort

Problem: Modal-Dialoge erscheinen kurz und verschwinden dann. Ursache: Automatische Form-Submission ohne preventDefault. Lösung: Korrekte Event-Handler-Implementierung mit preventDefault.

Port-Konfiguration Probleme

1. Server läuft auf Port 5000 statt 8443

Problem: Logs zeigen Port 5000, aber Frontend erwartet 8443. Ursache: SSL-Konfiguration fehlgeschlagen, Fallback auf HTTP. Lösung:

  • Intelligente Port-Erkennung implementiert
  • Automatischer Fallback von HTTPS:8443 zu HTTP:5000
  • Dynamische API-Base-URL-Generierung
  • Detailliertes Logging der URL-Erkennung

2. Cross-Origin-Probleme

Problem: CORS-Fehler bei API-Aufrufen zwischen verschiedenen Ports. Lösung: Dynamische URL-Erkennung verhindert Cross-Origin-Requests.

3. Favicon 404-Fehler

Problem: /favicon.ico gibt 404 zurück. Lösung: Route hinzugefügt die vorhandene PNG-Datei verwendet.

Debugging-Strategien

1. Admin-API-Test-Route

Zweck: Überprüfung ob Admin-API grundsätzlich funktioniert. Route: /api/admin/test Verwendung: Zeigt Benutzer-Status und Admin-Berechtigung an.

2. Debug-Routen-Übersicht

Route: /debug/routes Zweck: Zeigt alle registrierten Flask-Routen an.

3. Verbesserte Fehlerbehandlung

  • Alle Admin-API-Routen haben jetzt try-catch-Blöcke
  • Detaillierte Fehlermeldungen
  • Graceful degradation bei fehlenden Abhängigkeiten
  • Intelligente URL-Erkennung mit Logging

4. URL-Debugging

Konsolen-Logs: Alle API-Aufrufe loggen jetzt die verwendete URL Port-Erkennung: Detaillierte Informationen über erkannte Ports und Protokolle Fallback-Mechanismus: Automatische Umschaltung zwischen Ports

Präventive Maßnahmen

1. JavaScript-Funktionen

  • Alle aufgerufenen Funktionen sind jetzt definiert
  • Fallback-Mechanismen für fehlende Elemente
  • Bessere Fehlerbehandlung in Event-Listenern
  • Korrekte Form-Event-Handler mit preventDefault

2. API-Routen

  • Konsistente Admin-Berechtigung-Prüfung
  • Sichere Datenbankzugriffe mit finally-Blöcken
  • Fallback-Werte für alle Statistiken
  • Dynamische URL-Erkennung für alle API-Aufrufe

3. Template-Handling

  • Alle Admin-Templates existieren
  • Korrekte Template-Pfade
  • Fehlerbehandlung für fehlende Templates

4. Port-Management

  • Intelligente Port-Erkennung
  • Automatische Fallback-Mechanismen
  • Cross-Origin-Problem-Vermeidung
  • Detailliertes URL-Logging

Aktuelle Status

Behoben:

  • animateCounters Funktion hinzugefügt
  • showPrinterModal Funktion implementiert
  • Admin-API-Routen verbessert
  • Favicon-Route hinzugefügt
  • Fehlerbehandlung verstärkt
  • Dynamische API-URL-Erkennung implementiert
  • Modal-Dialog preventDefault-Problem behoben
  • Port-Mismatch-Problem gelöst
  • JSON-Parse-Fehler behoben

🔄 In Bearbeitung:

  • SSL-Konfiguration optimieren
  • Live-Updates stabilisieren

⚠️ Zu überwachen:

  • Admin-Berechtigung-Prüfung
  • Datenbankverbindung-Stabilität
  • JavaScript-Performance bei Animationen
  • API-URL-Fallback-Mechanismus

Nächste Schritte

  1. Server-Neustart testen - Die Port-Erkennung sollte jetzt funktionieren
  2. Admin-Dashboard-Funktionalität verifizieren - Alle Modals sollten funktionieren
  3. Live-Updates überwachen - API-Aufrufe sollten erfolgreich sein
  4. SSL-Konfiguration finalisieren
  5. Performance-Optimierungen implementieren

Technische Details

Port-Erkennung-Algorithmus

  1. Gleicher Port: Wenn Frontend und Backend auf gleichem Port → relative URLs
  2. HTTPS:8443 → HTTP:5000: Automatischer Fallback für häufigsten Fall
  3. Andere Ports: Standard-Backend-Port basierend auf Protokoll
  4. Logging: Alle Entscheidungen werden in der Konsole geloggt

Modal-Dialog-Fixes

  • e.preventDefault() in allen Form-Submit-Handlers
  • Explizite Event-Listener statt onclick-Attribute
  • Korrekte Modal-Schließung nach erfolgreichen API-Aufrufen
  • Verbesserte Fehlerbehandlung mit Benutzer-Feedback