Aktionen
Bug #107
offen[Bugsink] ErrorException: Warning: file_get_contents(https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=2&maxOccurs=-1&terms=Erwe…
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 eineErrorException, 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()odercurl(robuster alsfile_get_contents). -
Fehler abfangen mit
try-catchoder@-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()durchGuzzleHTTP(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_ratsinfooder ähnlich). - Eine Schnittstellen-Extension wie
EXT:restoderEXT:api. - Ein Scheduler-Task oder CommandController, der die API abfragt.
- Eine Custom-Extension für das "Ratsinfomanagement" (z. B.
Wie identifizieren?
- Suche nach
file_get_contentsintypo3conf/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:
-
API-Verfügbarkeit prüfen (z. B. mit
curl -v https://rietberg.ratsinfomanagement.net/...). - Code auf Guzzle umstellen und Fehlerbehandlung verbessern.
- Caching einbauen, um die API-Requests zu reduzieren.
Nichts anzuzeigen
Aktionen