Projekt

Allgemein

Profil

Aktionen

Bug #107

offen

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

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/d9f815a6-2ed0-401c-96a8-de83d1015940/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=Erwe…


Automatisch erstellt durch n8n

KI-Analyse:

Hier ist die präzise Analyse des Fehlers:


1. Ursache identifizieren

Der Fehler tritt auf, weil:

  • file_get_contents() versucht, eine externe API-URL (https://rietberg.ratsinfomanagement.net/...) abzurufen.
  • Die API antwortet mit HTTP 503 (Service Unavailable), d. h. der Dienst ist temporär nicht erreichbar (Serverüberlastung, Wartungsmodus, Netzwerkprobleme, etc.).
  • Die PHP-Funktion file_get_contents() wirft daraufhin eine ErrorException, da sie keine erfolgreiche HTTP-Verbindung herstellen kann.

Kontext:

  • Der Fehler stammt aus /public/index.php (Zeile 21), wo vermutlich eine TYPO3-Extension (oder ein Custom-Code) die API abfragt.
  • Die Middleware-Kette von TYPO3 ist nicht die Ursache, sondern nur der Ausführungsweg des Fehlers.

2. Fix beschreiben (konkret)

Kurzfristige Lösung (Fehlerbehandlung):

  • Prüfe die API-Verfügbarkeit vor dem Aufruf mit get_headers() oder curl (robuster als file_get_contents).
  • Fehler abfangen mit try-catch oder @-Operator (nicht empfohlen, aber möglich für temporäre Lösungen).
  • Fallback-Mechanismus implementieren (z. B. Cache nutzen, wenn die API nicht erreichbar ist).

Beispiel-Code (robuster API-Aufruf):

$url = 'https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=2&maxOccurs=-1&terms=Erweitertes%20F%C3%BChrungszeugnis';
$context = stream_context_create([
    'http' => [
        'timeout' => 10, // Timeout in Sekunden
        'ignore_errors' => true, // HTTP-Fehlercodes zulassen
    ]
]);

$response = @file_get_contents($url, false, $context);
if ($response === false) {
    // Loggen oder Fallback
    $error = error_get_last();
    throw new \RuntimeException('API nicht erreichbar: ' . $error['message']);
}

Langfristige Lösung:

  • Ersetze file_get_contents() durch GuzzleHTTP (empfohlen für TYPO3, da es bessere Fehlerbehandlung und Zeitüberschreitungen bietet).
    Beispiel mit Guzzle:
    use GuzzleHttp\Client;
    use GuzzleHttp\Exception\RequestException;
    
    $client = new Client(['timeout' => 10]);
    try {
        $response = $client->get($url);
        $data = json_decode($response->getBody(), true);
    } catch (RequestException $e) {
        // Loggen oder Fallback
        throw new \RuntimeException('API-Fehler: ' . $e->getMessage());
    }
    
  • Caching einbauen, um die API nicht bei jedem Request abzufragen.
  • Konfiguration prüfen: Ist die API-URL korrekt? Gibt es Firewall/Proxy-Einschränkungen?

3. Betroffene TYPO3-Extension

  • Keine Core-Extension, sondern Custom-Code oder eine Drittanbieter-Extension, die in /public/index.php (oder einer darin eingebundenen Klasse) die API abfragt.
  • Mögliche Kandidaten:
    • Eine Custom-Extension für das "Ratsinfomanagement" (z. B. tx_ratsinfo oder ähnlich).
    • Eine Schnittstellen-Extension wie EXT:rest oder EXT:api.
    • Ein Scheduler-Task oder CommandController, der die API abfragt.

Wie identifizieren?

  • Suche nach file_get_contents in typo3conf/ext/ oder im Custom-Code.
  • Prüfe die TYPO3-Logs (var/log/typo3_*.log) auf weitere Hinweise.
  • Frage den Entwickler der Extension nach der API-Integration.

4. Confidence

  • 95%: Die Ursache (HTTP 503 + file_get_contents) ist klar.
  • 80%: Der Fix (Guzzle + Fehlerbehandlung) ist der richtige Ansatz.
  • 70%: Die betroffene Extension ist nicht eindeutig, aber mit hoher Wahrscheinlichkeit Custom-Code.

Zusammenfassung

Punkt Details
Ursache API (https://rietberg.ratsinfomanagement.net) antwortet mit HTTP 503.
Fix file_get_contents durch Guzzle ersetzen + Fehlerbehandlung + Caching.
Extension Custom-Code oder Drittanbieter-Extension (kein TYPO3-Core).
Confidence 95% (Ursache), 80% (Fix), 70% (Extension).

Empfehlung:

  1. API-Verfügbarkeit prüfen (z. B. mit curl -v https://rietberg.ratsinfomanagement.net/...).
  2. Code auf Guzzle umstellen und Fehlerbehandlung verbessern.
  3. Caching einbauen, um die API-Requests zu reduzieren.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF