Projekt

Allgemein

Profil

Aktionen

Bug #115

offen

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

Von Bug Sink vor etwa 2 Monaten hinzugefügt.

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

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/7b13f20c-3616-445e-be20-f87c7dd51ad4/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

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


Automatisch erstellt durch n8n

KI-Analyse:

Analyse des Fehlers

1. Ursache identifizieren

Der Fehler tritt auf, weil file_get_contents() versucht, eine externe API-Anfrage an
https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=1&maxOccurs=-1&terms=Hillemeyer
zu senden, aber die Ziel-URL antwortet mit einem HTTP 500 Internal Server Error.

  • Direkte Ursache:

    • Die API (rietberg.ratsinfomanagement.net) liefert einen Server-Fehler (500) zurück.
    • file_get_contents() kann die Antwort nicht verarbeiten und wirft eine ErrorException.
  • Mögliche Gründe für den 500er-Fehler:

    • Server-seitiges Problem (z. B. Skriptfehler, Datenbankfehler, fehlende Berechtigungen).
    • Ungültige Parameter (maxOccurs=-1 könnte z. B. ein Problem sein, wenn die API negative Werte nicht akzeptiert).
    • Authentifizierung erforderlich (API verlangt z. B. einen API-Key oder Token).
    • CORS/SSL-Probleme (falls die API nur bestimmte Domains oder Zertifikate akzeptiert).
    • Timeout (die API antwortet zu langsam oder hängt).
  • Indirekte Ursache im TYPO3-Kontext:

    • Die Anfrage wird wahrscheinlich von einer TYPO3-Extension (z. B. einer Such- oder Datenimport-Erweiterung) ausgelöst.
    • Die Extension verwendet file_get_contents() statt einer robusteren HTTP-Client-Lösung (z. B. Guzzle oder TYPO3s RequestFactory).

2. Fix beschreiben (konkret)

Kurzfristige Lösung (Fehlerbehandlung)
  • Prüfe die API manuell (z. B. mit curl oder Postman):

    curl -v "https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=1&maxOccurs=-1&terms=Hillemeyer"
    
    • Falls die API einen 500er zurückgibt, muss der API-Anbieter kontaktiert werden.
  • Fehlerbehandlung in der Extension verbessern:

    • Ersetze file_get_contents() durch GuzzleHttp (empfohlen) oder TYPO3s RequestFactory für bessere Fehlerbehandlung.
    • Beispiel mit RequestFactory (TYPO3 ≥ v9):
      use TYPO3\CMS\Core\Http\RequestFactory;
      
      $requestFactory = GeneralUtility::makeInstance(RequestFactory::class);
      try {
          $response = $requestFactory->request(
              'https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch',
              'GET',
              [
                  'query' => [
                      'type' => 1,
                      'maxOccurs' => -1,
                      'terms' => 'Hillemeyer',
                  ],
              ]
          );
          if ($response->getStatusCode() === 200) {
              $data = json_decode($response->getBody()->getContents(), true);
          } else {
              // Logge den Fehler (z. B. mit TYPO3s Logger)
              $this->logger->error('API request failed', ['status' => $response->getStatusCode()]);
          }
      } catch (\Exception $e) {
          $this->logger->error('API request error: ' . $e->getMessage());
      }
      
Langfristige Lösung (API-Stabilität)
  • Parameter validieren:
    • Prüfe, ob maxOccurs=-1 ein gültiger Wert ist (ggf. auf maxOccurs=100 oder ähnliches setzen).
  • Timeouts und Retries einbauen:
    • Bei RequestFactory oder Guzzle:
      'timeout' => 10, // 10 Sekunden Timeout
      'connect_timeout' => 5,
      
  • Fallback-Mechanismus:
    • Falls die API nicht erreichbar ist, cache vorherige Ergebnisse oder zeige eine Fehlermeldung an.

3. Betroffene TYPO3 Extension nennen

  • Keine Standard-TYPO3-Extension ist betroffen, da der Fehler in einer benutzerdefinierten Extension oder Drittanbieter-Extension auftritt**.
  • Hinweise auf die Extension:
    • Der Fehler stammt aus /public/index.php (kein Standard-TYPO3-Pfad), was auf eine individuelle Implementierung hindeutet.
    • Die URL (rietberg.ratsinfomanagement.net) deutet auf eine kommunale Lösung hin (z. B. eine Ratsinformationssystem-Anbindung).
    • Mögliche Extensions:
      • Eine Such-Extension (z. B. für Ratsdokumente).
      • Eine Datenimport-Extension (z. B. für Bürgeranfragen).
      • Eine Schnittstellen-Extension zu einem externen Portal.

Empfehlung:

  • Suche im Projekt nach der Verwendung von file_get_contents() mit dieser URL:
    grep -r "file_get_contents.*rietberg.ratsinfomanagement.net" /pfad/zum/projekt/
    
  • Prüfe die Extension-Konfiguration (z. B. in ext_localconf.php oder ext_tables.php).

4. Confidence (0-100%)

  • Ursache (HTTP 500 + file_get_contents) → 95%
  • Betroffene Extension (benutzerdefiniert) → 80% (da keine Standard-Extension)
  • Fix (Guzzle/RequestFactory + Fehlerbehandlung) → 90%

Gesamt-Confidence: 88%


Zusammenfassung

Punkt Details
Ursache API (rietberg.ratsinfomanagement.net) antwortet mit HTTP 500.
Fix Ersetze file_get_contents() durch RequestFactory oder Guzzle.
Extension Benutzerdefinierte Extension (z. B. für Ratsinformationssystem-Anbindung).
Confidence 88%

Nächste Schritte:

  1. API manuell testen (mit curl oder Postman).
  2. Extension-Code anpassen (Guzzle/RequestFactory + Fehlerbehandlung).
  3. API-Anbieter kontaktieren, falls der 500er-Fehler persistiert.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF