Projekt

Allgemein

Profil

Aktionen

Bug #106

offen

[Bugsink] ErrorException: Warning: file_get_contents(https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=2&maxOccurs=-1&terms=wind…

Von Bug Sink vor 4 Tagen hinzugefügt.

Status:
Neu
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
19.08.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/3d722ed6-31e1-4c49-b606-a789ee0ae8ae/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

ErrorException: Warning: file_get_contents(https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=2&maxOccurs=-1&terms=wind…


Automatisch erstellt durch n8n

KI-Analyse:

Analyse des Fehlers

1. Ursache identifizieren

Der Fehler tritt auf, weil die TYPO3-Anwendung versucht, eine externe HTTP-Anfrage an die URL
https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=2&maxOccurs=-1&terms=windenergie
mittels file_get_contents() durchzuführen. Die Anfrage schlägt jedoch fehl mit einem HTTP 503 Service Unavailable (Server nicht erreichbar oder überlastet).

Mögliche Gründe:

  • Der Zielserver (rietberg.ratsinfomanagement.net) ist temporär nicht erreichbar (Wartung, Überlastung, Netzwerkproblem).
  • Die URL ist falsch oder der Webservice wurde deaktiviert/verschoben.
  • Firewall/Proxy blockiert die Anfrage (z. B. wegen fehlender SSL-Zertifikatsprüfung oder IP-Beschränkungen).
  • Die Anfrage wird vom Zielserver abgelehnt (z. B. wegen fehlender Authentifizierung oder Rate-Limiting).

2. Fix beschreiben (konkret)

Kurzfristige Lösung (Fehlerbehandlung):

  • Prüfe die Verfügbarkeit des Zielservers (z. B. mit curl oder Browser):
    curl -v "https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=2&maxOccurs=-1&terms=windenergie"
    
  • Ersetze file_get_contents() durch eine robustere HTTP-Client-Lösung (z. B. Guzzle oder TYPO3s GeneralUtility::getUrl()), die Fehler besser behandelt:
    use TYPO3\CMS\Core\Utility\GeneralUtility;
    
    try {
        $response = GeneralUtility::getUrl('https://rietberg.ratsinfomanagement.net/...');
        if ($response === false) {
            throw new \RuntimeException('HTTP request failed');
        }
    } catch (\Exception $e) {
        // Logge den Fehler und handle ihn (z. B. Fallback-Daten laden)
        $this->logger->error('External API request failed: ' . $e->getMessage());
        return []; // oder leere Daten zurückgeben
    }
    

Mittelfristige Lösung (Konfiguration/Architektur):

  • Caching der API-Antworten (z. B. mit Redis oder TYPO3-Cache), um wiederholte Anfragen zu vermeiden.
  • Fallback-Mechanismus: Falls die API nicht verfügbar ist, lokale Daten oder eine Fehlermeldung anzeigen.
  • Timeouts setzen (z. B. bei Guzzle):
    $client = new \GuzzleHttp\Client(['timeout' => 5]);
    $response = $client->get('https://rietberg.ratsinfomanagement.net/...');
    
  • SSL-Zertifikatsprüfung deaktivieren (nur für Tests!):
    $context = stream_context_create([
        'ssl' => ['verify_peer' => false, 'verify_peer_name' => false]
    ]);
    $response = file_get_contents('https://...', false, $context);
    

3. Betroffene TYPO3 Extension

Der Fehler stammt nicht aus einer Core-Extension, sondern aus benutzerdefiniertem Code in /public/index.php (Zeile 21). Dort wird die externe API-Anfrage gestellt.

  • Mögliche Ursprünge:
    • Eine Custom Extension (z. B. für die Integration des Ratsinformationssystems).
    • Ein Site-Package oder Frontend-Plugin, das die Suche an die externe API delegiert.

4. Confidence

  • Ursache: 95% (HTTP 503 ist klar, aber der genaue Grund für die Nichtverfügbarkeit des Zielservers muss noch geklärt werden).
  • Fix: 90% (Die vorgeschlagenen Lösungen sind Standard für HTTP-Client-Fehler in TYPO3, aber die genaue Implementierung hängt vom Kontext ab).

Zusammenfassung

Punkt Details
Ursache Externe API (rietberg.ratsinfomanagement.net) antwortet mit HTTP 503.
Fix Fehlerbehandlung mit GeneralUtility::getUrl() oder Guzzle, Caching, Fallback.
Betroffene Ext. Benutzerdefinierter Code in /public/index.php (keine Core-Extension).
Confidence 90–95%

Empfehlung:

  1. Prüfe die Erreichbarkeit der API manuell.
  2. Ersetze file_get_contents() durch eine robustere Lösung.
  3. Implementiere Caching/Fallback, um die Abhängigkeit von der externen API zu reduzieren.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF