Display zeigt Demo-Daten statt echte Flüge

Was tun wenn Mock/Demo-Daten angezeigt werden statt echter Flug-Informationen

9 min readLast updated: 1/15/20240

Display zeigt Demo-Daten statt echte Flüge

Wenn Ihr Display Demo- oder Mock-Daten anzeigt statt echter Live-Flüge, folgen Sie dieser Anleitung.

Symptome

Sie erkennen Mock-Daten an:

  • 🎭 Gelbes "Demo Mode" Badge im Footer
  • ✈️ Immer gleiche Flüge (OS501, LH1234, LX456, etc.)
  • 📅 Zeiten aktualisieren sich, aber Flugnummern bleiben gleich
  • 🔢 Genau 10 Flüge, immer in gleicher Reihenfolge
  • 📍 API-Response enthält "mock": true
  • 🌍 Alle Flüge nach Frankfurt/München/Zürich
  • Schnell-Diagnose (2 Minuten)

    Test 1: API-Response prüfen

    Öffnen Sie in neuem Browser-Tab:

    [CODE_BLOCK]

    https://lobbyflight.com/api/flights/ihre-hotel-id?type=departures

    [CODE_BLOCK]

    Echte Daten haben:

    [CODE_BLOCK]json

    {

    "success": true,

    "data": [...],

    "airport": "VIE",

    "cachedAt": "2024-12-04T10:00:00Z"

    // KEIN "mock" Feld!

    }

    [CODE_BLOCK]

    Mock-Daten haben:

    [CODE_BLOCK]json

    {

    "success": true,

    "mock": true, // ← Dieses Feld zeigt Mock!

    "data": [...],

    "message": "Using mock data - no API key configured"

    }

    [CODE_BLOCK]

    Test 2: Console-Logs prüfen

    Öffnen Sie DevTools (F12) → Console

    Mock-Modus zeigt:

    [CODE_BLOCK]

    Using mock data - no API key configured

    AviationStack: No API key configured, using mock flights

    Mock flight data generated for VIE

    [CODE_BLOCK]

    Echter Modus zeigt:

    [CODE_BLOCK]

    AviationStack: Fetching from API for VIE departures

    AviationStack API Request: http://api.aviationstack.com/v1/flights...

    AviationStack API Response: Got 100 flights

    [CODE_BLOCK]

    Test 3: Demo-URL testen

    Zum Vergleich öffnen Sie:

    [CODE_BLOCK]

    https://lobbyflight.com/display/demo

    [CODE_BLOCK]

    Falls Demo ECHTE Daten zeigt (Vienna live):

  • ✅ AviationStack API funktioniert generell
  • ✅ System ist OK
  • ❌ Problem ist Ihr Hotel-spezifischer API-Key
  • Falls Demo AUCH Mock-Daten zeigt:

  • ❌ Systemweites Problem
  • AviationStack API-Key fehlt global
  • → Admin muss Server-Config prüfen
  • Ursache 1: AviationStack API-Key fehlt

    Technische Details

    Code-Location: /lib/aviationstack.ts (Zeilen 74-77)

    API-Key wird aus Environment Variable geladen:

    [CODE_BLOCK]typescript

    const API_KEY = process.env.AVIATIONSTACK_API_KEY

    if (!API_KEY) {

    console.warn('AviationStack: No API key configured, using mock flights')

    return generateMockFlights(airport, type) // Generiert Demo-Daten!

    }

    // Mit API-Key: Echte API-Anfrage

    const response = await fetch(

    https://api.aviationstack.com/v1/flights?access_key=${API_KEY}&dep_iata=${airport}

    )

    [CODE_BLOCK]

    Ohne API-Key:

  • → Kein echter API-Call
  • → Mock-Daten werden generiert
  • → Immer gleiche Flüge
  • Schritt-für-Schritt-Lösung (für Administratoren)

    Schritt 1: AviationStack Account erstellen

  • Gehen Sie zu: https://aviationstack.com
  • Klicken Sie Sign Up
  • Wählen Sie Plan:
  • - Free: 100 Requests/Monat (NICHT ausreichend!)

    - Standard: $49/Monat, 10,000 Requests (empfohlen)

  • Bestätigen Sie Email
  • Schritt 2: API Key kopieren

  • Login zu AviationStack Dashboard
  • Navigieren Sie zu: DashboardAPI Access Key
  • Kopieren Sie den Key (alphanumerisch, ~32 Zeichen)
  • Beispiel-Key:

    [CODE_BLOCK]

    a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6

    [CODE_BLOCK]

    Schritt 3: Environment Variable setzen

    Lokale Entwicklung (.env.local):

    [CODE_BLOCK]bash

    Datei: .env.local

    AVIATIONSTACK_API_KEY=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6

    [CODE_BLOCK]

    Vercel Production:

    [CODE_BLOCK]

  • Vercel Dashboard öffnen
  • Project → Settings → Environment Variables
  • Add New:
  • - Key: AVIATIONSTACK_API_KEY

    - Value: [Ihr API Key]

    - Environments: Production ✓

  • Save
  • Deployments → Latest → Redeploy
  • [CODE_BLOCK]

    Schritt 4: Server neu starten

    Lokal:

    [CODE_BLOCK]bash

    Terminal:

    npm run dev

    Oder:

    yarn dev

    [CODE_BLOCK]

    Vercel:

    [CODE_BLOCK]bash

    Via CLI:

    vercel --prod --force

    Oder: Dashboard → Deployments → Redeploy

    [CODE_BLOCK]

    Schritt 5: Verifizierung

    Test-Request mit curl:

    [CODE_BLOCK]bash

    curl "https://api.aviationstack.com/v1/flights?access_key=IHR_KEY&dep_iata=VIE&limit=1"

    [CODE_BLOCK]

    Erwartetes Ergebnis:

    [CODE_BLOCK]json

    {

    "pagination": {

    "limit": 1,

    "offset": 0,

    "count": 1,

    "total": 100

    },

    "data": [

    {

    "flight_date": "2024-12-04",

    "flight_status": "scheduled",

    "departure": {

    "airport": "Vienna International Airport",

    "iata": "VIE",

    ...

    }

    }

    ]

    }

    [CODE_BLOCK]

    Falls Error:

    [CODE_BLOCK]json

    {

    "error": {

    "code": "invalid_access_key",

    "message": "You have not supplied a valid API Access Key."

    }

    }

    [CODE_BLOCK]

    → API-Key falsch kopiert, prüfen Sie nochmal

    Ursache 2: API-Key ungültig oder abgelaufen

    Technische Details

    Code-Location: /lib/aviationstack.ts (Zeilen 50-70)

    API-Request kann mit HTTP 401 fehlschlagen:

    [CODE_BLOCK]typescript

    const response = await fetch(apiUrl)

    if (response.status === 401) {

    console.error('AviationStack API error: 401 Unauthorized')

    console.warn('Invalid API key, falling back to mock data')

    return generateMockFlights(airport, type)

    }

    [CODE_BLOCK]

    Gründe für 401:

  • API-Key falsch (Tippfehler)
  • API-Key abgelaufen (Subscription beendet)
  • API-Key für anderes Projekt (bei mehreren Projekten)
  • Symptome

  • Console-Error: "AviationStack API error: 401"
  • Console-Warning: "Invalid API key, falling back to mock data"
  • Network Tab: Request zu aviationstack.com mit Status 401
  • Trotzdem Mock-Daten angezeigt (Fallback)
  • Lösung

    Schritt 1: API-Key im Code prüfen

    Auf dem Server (nur Admin):

    [CODE_BLOCK]bash

    Environment Variable ausgeben:

    echo $AVIATIONSTACK_API_KEY

    Länge prüfen (sollte 32 Zeichen sein):

    echo $AVIATIONSTACK_API_KEY | wc -c

    Erwartung: 33 (32 + Newline)

    [CODE_BLOCK]

    Schritt 2: API-Key auf Dashboard verifizieren

    AviationStack Dashboard:

    [CODE_BLOCK]

    Login → Dashboard → API Access Key

    [CODE_BLOCK]

    Kopieren Sie den korrekten Key (mit Copy-Button, nicht manuell!)

    Schritt 3: Subscription-Status prüfen

    AviationStack Dashboard:

    [CODE_BLOCK]

    Dashboard → Subscription → Status

    [CODE_BLOCK]

    Muss sein:

  • ✅ Status: "Active"
  • ✅ Plan: "Standard" oder höher
  • ✅ Payment Method: Gültig
  • Falls "Cancelled" oder "Past Due":

  • → Zahlungsmethode aktualisieren
  • → Subscription reaktivieren
  • → Neuer API-Key wird generiert
  • Schritt 4: API-Key neu generieren

    Falls Problem persistiert:

    [CODE_BLOCK]

    Dashboard → API Access Key → Regenerate Key

    → Kopieren Sie neuen Key

    → Aktualisieren Sie Environment Variable

    → Server neu starten

    [CODE_BLOCK]

    Ursache 3: API-Quota überschritten (Free Plan)

    Technische Details

    Free Plan Limits:

  • 📊 100 Requests/Monat
  • 🔄 Refresh alle 5 Minuten = 12 Requests/Stunde
  • 📅 12 × 24 × 30 = 8,640 Requests/Monat
  • Berechnung:

    [CODE_BLOCK]

    1 Hotel × 8,640 Requests = 86x ÜBER Quota!

    → Free Plan reicht für ~3 Stunden/Monat

    [CODE_BLOCK]

    Bei Quota-Überschreitung:

  • → HTTP 429 "Too Many Requests"
  • → Fallback zu Mock-Daten
  • → Quota reset am Monatsanfang
  • Symptome

  • Console-Error: "AviationStack API error: 429"
  • API-Response: { "error": { "code": "usage_limit_reached" } }
  • Funktioniert Anfang des Monats, dann nicht mehr
  • Display zeigt Mock-Daten ab Tag 2-3
  • Lösung

    Schritt 1: API-Nutzung prüfen

    AviationStack Dashboard:

    [CODE_BLOCK]

    Dashboard → Statistics

    → "API Calls This Month": X / 100

    [CODE_BLOCK]

    Schritt 2: Upgrade zu Standard Plan

    Standard Plan ($49/Monat):

  • 10,000 Requests/Monat
  • Ausreichend für ~5 Hotels
  • Keine Request-Delays
  • Email-Support
  • [CODE_BLOCK]

    Dashboard → Subscription → Upgrade to Standard

    → Zahlungsmethode eingeben → Confirm

    [CODE_BLOCK]

    Schritt 3: Oder: Cache-Zeit erhöhen (nicht empfohlen)

    Temporärer Workaround:

    [CODE_BLOCK]typescript

    // In /lib/aviationstack.ts:

    const CACHE_TTL = 300 // Vorher: 5 Minuten

    // Nachher:

    const CACHE_TTL = 3600 // 1 Stunde

    [CODE_BLOCK]

    Trade-off: Daten sind weniger aktuell (max. 1h alt)

    Neue Berechnung:

    [CODE_BLOCK]

    1 Request/Stunde × 24 × 30 = 720 Requests/Monat

    → Innerhalb Free Plan Quota!

    [CODE_BLOCK]

    Ursache 4: Datenbank nicht konfiguriert

    Technische Details

    Code-Location: /app/api/flights/[hotelId]/route.ts (Zeilen 50-61)

    Ohne Datenbank-Verbindung wird Mock-Mode aktiviert:

    [CODE_BLOCK]typescript

    if (!process.env.POSTGRES_URL) {

    console.warn('No database configured, using mock data')

    return NextResponse.json({

    success: true,

    mock: true,

    data: generateMockFlights(hotelId),

    message: 'Demo mode - configure database for production'

    })

    }

    const hotel = await db.query.hotels.findFirst({

    where: eq(hotels.id, hotelId)

    })

    [CODE_BLOCK]

    Ohne POSTGRES_URL:

  • → Keine Hotel-Config aus DB
  • → Kein Airport-Code geladen
  • → Mock-Daten als Fallback
  • Symptome

  • Console-Warning: "No database configured, using mock data"
  • API-Response: "message": "Demo mode - configure database"
  • Alle Hotels zeigen gleiche Mock-Daten
  • Portal-Login funktioniert auch nicht
  • Lösung (für Administratoren)

    Schritt 1: Vercel Postgres einrichten

  • Vercel Dashboard → Storage → Create Database
  • Wählen: Postgres
  • Region: Europe (oder näher an Ihnen)
  • Create
  • Schritt 2: Connection String kopieren

    [CODE_BLOCK]

    Storage → Postgres → [Ihre DB] → .env.local Tab

    → Kopieren Sie POSTGRES_URL

    [CODE_BLOCK]

    Beispiel:

    [CODE_BLOCK]

    POSTGRES_URL=postgresql://user:pass@host-xxxx.postgres.vercel-storage.com:5432/verceldb

    [CODE_BLOCK]

    Schritt 3: Environment Variable setzen

    .env.local:

    [CODE_BLOCK]bash

    POSTGRES_URL=postgresql://user:pass@host.vercel-storage.com:5432/db

    POSTGRES_PRISMA_URL=postgresql://user:pass@host-pooling.vercel-storage.com:5432/db

    [CODE_BLOCK]

    Vercel Production:

    [CODE_BLOCK]

    Project Settings → Environment Variables

    → Copy all from .env.local Tab

    → Save → Redeploy

    [CODE_BLOCK]

    Schritt 4: Datenbank-Schema deployen

    [CODE_BLOCK]bash

    Drizzle migrations:

    npx drizzle-kit push:pg

    Oder Prisma:

    npx prisma db push

    [CODE_BLOCK]

    Schritt 5: Test-Hotel erstellen

    [CODE_BLOCK]sql

    INSERT INTO hotels (name, email, password_hash, airport_codes, is_active)

    VALUES (

    'Test Hotel',

    'test@hotel.com',

    '$2a$10$...', -- bcrypt hash

    ARRAY['VIE'],

    true

    );

    [CODE_BLOCK]

    Ursache 5: Falscher Display-Modus (Demo-URL)

    Symptome

  • URL ist /display/demo statt /display/ihre-hotel-id
  • "Demo Mode" Badge sichtbar
  • Zeigt Vienna (VIE) Flüge, aber:
  • - Nicht Ihr Logo

    - Nicht Ihre Farben

    - Nicht Ihre konfigurierten Airports

    Lösung

    Korrekte URL verwenden:

    Portal:

    [CODE_BLOCK]

    Login → Preview → "Copy Display URL"

    → Oder: QR-Code scannen

    [CODE_BLOCK]

    Richtig:

    [CODE_BLOCK]

    https://lobbyflight.com/display/a1b2c3d4-e5f6-7890-abcd-ef1234567890

    [CODE_BLOCK]

    Falsch (Demo):

    [CODE_BLOCK]

    https://lobbyflight.com/display/demo

    [CODE_BLOCK]

    Bookmark korrigieren:

  • Android-Display: Chrome → Bookmarks
  • Löschen Sie Demo-URL Bookmark
  • Portal → Preview → QR-Code scannen
  • Oder: URL manuell bookmarken
  • Prävention

    Best Practices

    1. API-Key sicher speichern:

  • Nie im Git-Repository committen
  • Nur in Environment Variables
  • Backup an sicherem Ort
  • 2. Subscription monitoren:

  • AviationStack Quota wöchentlich prüfen
  • Alert einrichten bei 80% Usage
  • Upgrade-Plan bereit haben
  • 3. Multi-Tier Fallback:

  • Primary: Live API-Daten
  • Fallback 1: Cache (5 Minuten alt)
  • Fallback 2: Stale Cache (bis 1 Stunde alt)
  • Last Resort: Mock-Daten
  • 4. Monitoring einrichten:

  • Uptime-Monitor für API-Calls
  • Alert wenn mock: true in Response
  • Daily Summary Email
  • 5. Dokumentation:

  • API-Keys dokumentieren
  • Quota-Limits kennen
  • Upgrade-Prozess dokumentiert
  • Verwandte Artikel

  • API-Setup: "AviationStack API Key konfigurieren"
  • Database: "Vercel Postgres Setup"
  • Subscription: "AviationStack Plan-Vergleich"
  • Display: "Keine Flüge angezeigt"
  • Debug-Checkliste

  • [ ] API-Response prüfen (mock: true?)
  • [ ] Console Logs prüfen (Mock-Warnings?)
  • [ ] Demo-URL funktioniert mit echten Daten?
  • [ ] API-Key gesetzt in Environment?
  • [ ] API-Key gültig? (Test mit curl)
  • [ ] Subscription aktiv bei AviationStack?
  • [ ] Quota nicht überschritten (< 10,000/Monat)?
  • [ ] Database konfiguriert (POSTGRES_URL)?
  • [ ] Display-URL korrekt (nicht /demo)?
  • [ ] Support kontaktiert mit API-Response?
  • Was this article helpful?