1 Punkte von GN⁺ 2024-06-10 | 2 Kommentare | Auf WhatsApp teilen

Über 10.000 US-Dollar Verlust durch einen einzigen ChatGPT-Fehler

Der Weg zur Monetarisierung 🛣️

  • Hintergrund: In der frühen Phase des Startups wurde mit der Monetarisierung begonnen.
  • Preisgestaltung: Auf Rat eines YC Group Partners wurde der Preis auf 40 US-Dollar pro Monat festgelegt.
  • Tech-Stack: Von NextJS auf Python/FastAPI migriert. Die Stripe-Integration war abgeschlossen.

Die Ursache des Verlusts von 10.000 US-Dollar 💰

  • Das Problem: Bei der Abonnement-Funktion trat ein endlos ladender Spinner auf.
  • Fehlersuche: Nach fünf Tagen mit unzähligen E-Mails und Log-Analysen wurde das Problem gefunden.
  • Ursache: Im von ChatGPT erzeugten Code gab es einen Fehler bei der ID-Erzeugung. Es wurde ein feststehender ID-String verwendet, was zu ID-Kollisionen führte.

Den Bug finden 🐛

  • Problembeschreibung: Durch die Verwendung eines festen ID-Strings kam es zu ID-Kollisionen. Da auf AWS ECS mehrere Instanzen liefen, gab es tagsüber kein Problem, nachts traten jedoch Kollisionen auf.
  • Lösung: Statt der festen ID wurde eine UUID-Erzeugungsfunktion verwendet. Nach der Behebung stabilisierte sich das System.

Fazit 🤖

  • Lehre: Es wird eingeräumt, Fehler gemacht zu haben, etwa unzureichende Tests, Copy-and-paste von Code und direkte Commits auf den Main-Branch.
  • Erfahrung: Es war eine schmerzhafte Erfahrung, blieb aber als wichtiger Moment im Startup in Erinnerung.

Meinung von GN⁺

  • Wichtigkeit von Tests: Es sind ausreichend Unit-Tests und Integrationstests nötig.
  • Code-Review: Statt Code zu kopieren und einzufügen, sind Code-Reviews und Validierung wichtig.
  • Deployment-Strategie: Statt direkt auf den Main-Branch zu committen, ist es besser, einen separaten Branch zu nutzen und den Code-Review-Prozess zu durchlaufen.
  • Fähigkeit zur Problemlösung: Die Fähigkeit, Probleme schnell zu identifizieren und zu beheben, ist wichtig.
  • Wahl des Tech-Stacks: Änderungen am Tech-Stack sollten sorgfältig geplant und getestet werden.

2 Kommentare

 
znjadong 2024-06-11

Äh, von KI automatisch generierten Code muss man unbedingt reviewen — warum verwendet man den einfach unverändert?

 
GN⁺ 2024-06-10
Hacker-News-Kommentare
  • Erster Kommentar: Den Fehler habe ich sofort bemerkt. Ursache war mangelnde Fachkompetenz im Team. Mit einer Monitoring-Lösung hätte man das leicht erkennen können.
  • Zweiter Kommentar: Dank ChatGPT hat die App Einnahmen erzielt. Fehlende Fähigkeiten bei Coding, Debugging, Logging und Monitoring waren die Ursache für den Verlust von 10.000 $.
  • Dritter Kommentar: Fehlendes Monitoring war die Ursache für den Verlust von 10.000 $. Es trat eine Datenbank-Ausnahme auf, aber es gab keine Warnung. Mit einer Warnung hätte man das in 5 Minuten beheben können.
  • Vierter Kommentar: Es wird auf ein Problem mit Pythons Auswertungsstrategie für Standardargumente hingewiesen. Sie werden zum Zeitpunkt der Funktionsdefinition ausgewertet. Das könnte aus Effizienzgründen so beabsichtigt sein. Auch die Art, wie Python Listen erzeugt, wird als problematisch genannt.
  • Fünfter Kommentar: Menschen machen denselben Fehler ebenfalls oft. Besonders in React/TypeScript/JavaScript vergisst man häufig, Lambdas zu verwenden. Ich denke, der Blogbeitrag hat die eigentliche Ursache des Problems nicht richtig erklärt.
  • Sechster Kommentar: Solche Fehler können leicht passieren. Ich kann jedoch nicht verstehen, warum es nach dem ersten Fehlschlag nicht entdeckt wurde. Ich frage mich, ob es überhaupt Logging gab.
  • Siebter Kommentar: Dieses Problem öffentlich zu machen wirkt naiv. ChatGPT trifft keine Schuld. Es bringt mich auf die Idee eines Code-Review-Service.
  • Achter Kommentar: Das Problem entstand durch Zeitdruck. Wegen solcher Zwänge habe ich Angst vor Software-Abonnements.
  • Neunter Kommentar: Ich kann nicht nachvollziehen, warum ein Startup ohne Kunden einen kompletten Rewrite rechtfertigt.
  • Zehnter Kommentar: Die Kunst beim Einsatz von LLMs besteht darin zu wissen, wann und wie man sie nutzt. Die Antwort von ChatGPT war angemessen, aber als ich die Empfehlung sah, in einer bestimmten Zeile alle Nutzer zu löschen, habe ich eine wichtige Lektion gelernt.

Jeder Kommentar bietet eine andere Perspektive auf Probleme, die im Softwareentwicklungsprozess auftreten können, sowie auf deren Lösungen. Das kann besonders für Junior-Software-Ingenieure nützliche Einsichten liefern.