<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ÖffiGo Blog</title>
    <link>https://oeffigo.app/blog/</link>
    <atom:link href="https://oeffigo.app/blog/rss.xml" rel="self" type="application/rss+xml" />
    <description>Wie ÖffiGo entsteht, was dabei schiefgeht und was als Nächstes kommt.</description>
    <language>de-AT</language>
    <item>
      <title>Zwei schwierige Tage und wie es weitergeht</title>
      <link>https://oeffigo.app/blog/zwei-tage-im-oktober/</link>
      <guid isPermaLink="true">https://oeffigo.app/blog/zwei-tage-im-oktober/</guid>
      <pubDate>Thu, 22 Oct 2026 12:00:00 GMT</pubDate>
      <author>contact@oeffigo.app (Johannes Grof)</author>
      <description>Am 21. Oktober sind mehrere Dienste ausgefallen, auf denen ÖffiGo aufbaut. Für eine Öffi-App ist so ein Tag ungefähr das Schlimmste, was passieren kann. Hier schreibe ich auf, was passiert ist, was ich dagegen gemacht habe und wie ich ÖffiGo ausfallsicherer machen will.

Ich bin Johannes Grof, gehe in die HTBLA Kaindorf und baue ÖffiGo allein, neben der Schule. Hinter der App stehen ein Server, eine Datenbank, mehrere Datenlieferanten, eine Statusseite und diese Website. Das alles am Laufen zu halten, ist mehr Arbeit, als man von außen sieht. Wenn etwas hängt, merke ich das oft in der Pause zwischen zwei Unterrichtsstunden oder am Abend.

Ich gebe mein Bestes, damit App und Server stabil laufen. Am Mittwoch ist trotzdem einiges auf einmal schiefgegangen, und darum geht es hier.

Was passiert ist

Alle Zeiten in österreichischer Zeit.
– Dienstag, 20. Oktober, abends: Railway, der Anbieter, auf dem mein Server läuft, konnte ein paar Stunden lang keine neuen Versionen ausliefern. Die App lief normal weiter, ein Update kam nur später an.
– Mittwoch, 21. Oktober, ab 9:24: Railway hatte einen großen Ausfall und hat ab Mittag in allen Regionen keine neuen Versionen mehr gebaut. Was schon lief, lief weiter, auch ÖffiGo.
– Mittwoch, 12 bis 15 Uhr: Die Fahrplanschnittstelle eines Datenlieferanten hat einen Teil der Anfragen mit einem Fehler beantwortet, und zwar in Schüben: drei Fehler in zehn Sekunden, dann minutenlang Ruhe. Abfahrten und Verbindungen luden dann oft erst beim zweiten Versuch.
– Mittwoch, ab 15:59: Aus Wien kamen keine Echtzeitdaten für U-Bahn, Bim und Bus. ÖffiGo hat dort die Fahrplanzeit gezeigt. Am Donnerstag um 6:37 waren die Daten wieder da.
– Mittwoch, 17:39 bis 20:40: Die Fahrplanschnittstelle war wegen einer kurzfristigen Wartung ganz weg. Abfahrten, Ankünfte, Fahrtverläufe, die Routenplanung und ÖffiGo im Assistenten gingen in dieser Zeit nicht. Suche, Verkehrsmeldungen, Pünktlichkeit und diese Website liefen weiter.
– Donnerstag, 0:10: Railway hat einen Sicherheitsvorfall gemeldet (https://blog.railway.com/p/security-disclosure-wednesday-october-21st) und allen Kunden geraten, ihre gespeicherten Zugangsschlüssel zu tauschen.
– Donnerstag, den ganzen Tag: Railway baut nach und nach wieder, zuerst für die größeren Tarife. Mein Tarif ist noch nicht dran, ich kann also bis jetzt nichts Neues ausliefern. Den aktuellen Stand zeigt Railways Statusseite (https://status.railway.com/incident/QH8L8B3E).

Was im Hintergrund lief

Bei den ersten Fehlern wollte ich zuerst sicher sein, dass sie nicht bei mir entstehen. Ich habe die Schnittstelle deshalb direkt abgefragt, ohne ÖffiGo dazwischen: 48 Abfragen in fünf Minuten, zwei davon schlugen fehl. Der Fehler lag also beim Datenlieferanten.

Dabei ist mir aufgefallen, dass ÖffiGo bei solchen Schüben ungeschickt reagiert. Nach vier Fehlern in Folge hat der Server die Schnittstelle eine Weile ganz in Ruhe gelassen, damit sie nicht zusätzlich belastet wird. Das ist gut gemeint. Bei drei kurzen Aussetzern hieß es aber, dass eine Zeit lang für alle gar keine Abfahrten kamen.

Den Umbau dafür habe ich noch am Mittwoch geschrieben und getestet. Ausliefern konnte ich ihn nicht, weil Railway genau an diesem Tag nichts Neues gebaut hat.

&gt; Das war für mich der frustrierendste Teil: Die Lösung war fertig, und ich konnte nur warten.

Nach der Sicherheitsmeldung habe ich die Datenbank auf fremde Zugriffe geprüft und keine gefunden. Neue Zugangsschlüssel für alle Dienste liegen bereit. Sie werden mit der nächsten Version aktiv, die Railway wieder annimmt.

Was das für dich hieß

Drei Stunden ohne Abfahrten sind für eine Öffi-App ungefähr das Schlimmste, was passieren kann. Wer am Mittwochabend auf den Bus gewartet hat, musste woanders nachschauen. Das tut mir leid.

Gut lief, dass auf status.oeffigo.app (https://status.oeffigo.app) die ganze Zeit stand, was gerade nicht geht und seit wann. Dort kannst du dir Updates auch per Mail schicken lassen.

Was ich jetzt umbaue

Am selben Mittwoch wurde außerdem PHP2Shell (https://orf.at/stories/3445758/) bekannt: zwei schwere Lücken in PHP, der Sprache, auf der ein großer Teil aller Websites läuft. Noch am selben Tag gab es weltweit Millionen Angriffsversuche, und das BSI hat gewarnt. ÖffiGo verwendet kein PHP und war davon nicht betroffen. Zusammen mit dem Vorfall bei Railway zeigt mir das aber, dass Angriffe und Ausfälle bei Diensten, auf die man baut, keine Ausnahme mehr sind. Verhindern kann ich sie nicht. Ich kann ÖffiGo aber so bauen, dass es sie übersteht, und daran arbeite ich gerade:
– Ein Schutzschalter je Dienst. Der Server sperrt eine Schnittstelle nicht mehr nach vier Fehlern in Folge. Er schaut auf die Fehlerquote der letzten Minute, für jeden Dienst einzeln, und ein schneller Fehler bekommt sofort einen zweiten Versuch. Drei Aussetzer in zehn Sekunden kosten so höchstens drei Anfragen. Fertig gebaut, geht online, sobald Railway wieder ausliefert.
– Messen, bevor du es merkst. Seit Mittwoch prüfen Messpunkte in Frankfurt und Zürich von außen, ob ÖffiGo antwortet. Als Nächstes schicken sie mir bei Problemen sofort eine Nachricht aufs Handy, und der Server misst jede Verbindung nach außen selbst: Fehlerquote, Antwortzeit und wie frisch die Daten sind.
– Der letzte Stand, wenn nichts Neues kommt. Fällt die Schnittstelle aus, soll die App die letzte Abfahrtstafel zeigen, mit dem Hinweis, wie alt sie ist. Geplant.
– Ein zweiter Weg zu den Daten. Für Wien eine zweite, direkte Quelle für Echtzeit, und für den Notfall ein Fahrplan, aus dem ÖffiGo auch ohne Schnittstelle Abfahrten zeigen kann. Geplant.

Wo ich mit ÖffiGo hinwill

Mein Ziel ist eine Öffi-App, die schnell ist und weiter funktioniert, wenn irgendwo ein Dienst ausfällt. Dafür soll ÖffiGo auf mehreren Beinen stehen: mehrere Datenquellen, eigene Messungen und ein Server, der mit Ausfällen rechnet.

Die Datenlieferanten bleiben dabei wichtig. Ohne sie gäbe es ÖffiGo nicht, und ich bin dankbar, dass sie ein Schülerprojekt unterstützen. Unabhängig heißt für mich, dass ÖffiGo dir auch dann etwas Brauchbares zeigt, wenn einer von ihnen kurz weg ist.

Wenn dir etwas auffällt oder du Fragen hast, schreib mir an contact@oeffigo.app (mailto:contact@oeffigo.app). Ich lese jede Nachricht.

Danke, dass du ÖffiGo nutzt.

&gt; Johannes</description>
    </item>
  </channel>
</rss>