Display-URL funktioniert nicht - Hotel nicht gefunden

Was tun wenn die Display-URL einen Fehler zeigt oder das Hotel nicht gefunden wird

9 min readLast updated: 1/15/20240

Display-URL funktioniert nicht - Hotel nicht gefunden

Symptome

  • ❌ "Hotel not found" Fehlermeldung auf Display
  • ❌ "Configuration Error - Unable to load display configuration"
  • ❌ URL lädt endlos (Spinner dreht sich)
  • ❌ 404 Error "Page not found"
  • ❌ QR-Code führt zu falscher Seite
  • ❌ Display zeigt leere Seite (weiß/schwarz)
  • ❌ "Invalid hotel ID" in Browser Console
  • Schnell-Checks (2 Minuten)

    1. URL-Format korrekt?

    Korrekte URL-Struktur:

    [CODE_BLOCK]

    https://lobbyflight.com/display/[HOTEL-ID]

    Beispiele:

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

    ✅ https://lobbyflight.com/display/550e8400-e29b-41d4-a716-446655440000

    Falsch:

    ❌ https://lobbyflight.com/display/grandhotel

    ❌ https://lobbyflight.com/display/

    ❌ http://lobbyflight.com/... (http statt https)

    ❌ https://www.lobbyflight.com/... (www. extra)

    [CODE_BLOCK]

    2. Hotel-ID aus Portal kopieren

    Richtige Quelle:

    [CODE_BLOCK]

    Hotel-Portal einloggen → Preview Tab

    → "Display URL" Feld

    → Gesamte URL kopieren (nicht nur ID)

    → Im Browser auf Display öffnen

    [CODE_BLOCK]

    3. Testen: Demo-Display funktioniert?

    [CODE_BLOCK]

    https://lobbyflight.com/display/demo

    Falls Demo funktioniert → Problem ist Ihre Hotel-ID

    Falls Demo auch nicht funktioniert → Server/Netzwerk Problem

    [CODE_BLOCK]

    Ursache 1: Falsche oder ungültige Hotel-ID

    Code-Location: /app/api/config/[hotelId]/route.ts (Zeilen 20-26)

    Bei Display-Aufruf wird Hotel-Konfiguration geladen:

    [CODE_BLOCK]typescript

    export async function GET(

    request: NextRequest,

    { params }: { params: { hotelId: string } }

    ) {

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

    where: eq(hotels.id, params.hotelId)

    })

    if (!hotel) {

    return NextResponse.json(

    { error: 'Hotel not found' },

    { status: 404 }

    )

    }

    // ...

    }

    [CODE_BLOCK]

    Problem: Hotel-ID existiert nicht in Datenbank ODER ist falsch formatiert.

    Häufige ID-Fehler

    1. UUID vs. Slug verwechselt:

    [CODE_BLOCK]

    Falsch: https://lobbyflight.com/display/grand-hotel-vienna

    Richtig: https://lobbyflight.com/display/550e8400-e29b-41d4-a716-446655440000

    UUID-Format: 8-4-4-4-12 Hexadezimal-Zeichen

    Beispiel: 550e8400-e29b-41d4-a716-446655440000

    ^ ^ ^ ^ ^

    8 Zeichen, dann 4-4-4-12

    [CODE_BLOCK]

    2. ID unvollständig kopiert:

    [CODE_BLOCK]

    Original: 550e8400-e29b-41d4-a716-446655440000

    Kopiert: 550e8400-e29b-41d4-a716-44665544

    → Letzten Teil fehlt!

    [CODE_BLOCK]

    Tipp: Gesamte URL aus Portal copy-pasten, nicht nur ID manuell abtippen.

    3. Leerzeichen oder Sonderzeichen:

    [CODE_BLOCK]

    Falsch: ...display/550e8400-e29b-41d4-a716-446655440000

    ↑ Leerzeichen!

    Falsch: ...display/550e8400-e29b-41d4-a716-446655440000?param=1

    ↑ Query-Parameter

    [CODE_BLOCK]

    Schritt-für-Schritt-Lösung

    1. Korrekte URL aus Portal holen:

    [CODE_BLOCK]

  • Hotel-Portal einloggen: https://lobbyflight.com/login
  • Navigieren zu: Portal → Preview
  • Feld "Display URL" finden:
  • ┌────────────────────────────────────────────────┐

    │ Display URL: │

    │ https://lobbyflight.com/display/550e8400-... │

    │ [Copy URL] [QR Code] │

    └────────────────────────────────────────────────┘

  • Button "Copy URL" klicken
  • In neuem Browser-Tab einfügen (Strg+V)
  • Enter drücken
  • [CODE_BLOCK]

    2. URL manuell validieren:

    Falls Copy-Paste nicht funktioniert:

    [CODE_BLOCK]

    URL-Struktur prüfen:

    ✓ Beginnt mit: https://

    ✓ Domain: lobbyflight.com

    ✓ Pfad: /display/

    ✓ ID: 36 Zeichen (mit Bindestrichen)

    ✓ Keine weiteren Zeichen danach

    [CODE_BLOCK]

    3. QR-Code scannen:

    Wenn Copy-Paste problematisch:

    [CODE_BLOCK]

    Hotel-Portal → Preview → QR Code anzeigen

    → Mit Handy/Tablet scannen

    → URL wird automatisch geöffnet

    → Wenn funktioniert: Diese URL notieren

    [CODE_BLOCK]

    4. Hotel-ID via API prüfen (für Admins):

    [CODE_BLOCK]bash

    Hotel-ID aus Email/Name suchen:

    curl https://lobbyflight.com/api/admin/hotels -H "Authorization: Bearer ADMIN_TOKEN" | jq '.[] | select(.name | contains("Grand Hotel"))'

    Ausgabe:

    {

    "id": "550e8400-e29b-41d4-a716-446655440000",

    "name": "Grand Hotel Vienna",

    "email": "office@grandhotel.com"

    }

    Diese ID verwenden

    [CODE_BLOCK]

    Ursache 2: Hotel-Account inaktiv oder Subscription abgelaufen

    Code-Location: /app/api/config/[hotelId]/route.ts (implizit geprüft)

    Auch wenn Hotel existiert, kann Config-Loading fehlschlagen wenn Account inaktiv.

    Prüfung in Datenbank:

    [CODE_BLOCK]sql

    SELECT

    id,

    name,

    is_active,

    subscription_status,

    subscription_tier,

    current_period_end

    FROM hotels

    WHERE id = '550e8400-e29b-41d4-a716-446655440000';

    -- Erwartete Werte:

    -- is_active: true ✅

    -- subscription_status: 'active' ✅

    -- current_period_end: > NOW() ✅

    -- Probleme:

    -- is_active: false → Account deaktiviert

    -- subscription_status: 'canceled' → Abo abgelaufen

    -- current_period_end: < NOW() → Billing-Period abgelaufen

    [CODE_BLOCK]

    Schritt-für-Schritt-Lösung

    1. Subscription-Status prüfen:

    [CODE_BLOCK]

    Hotel-Portal einloggen → Billing Tab

    Subscription Status: [Active/Past Due/Canceled]

    Current Period Ends: 2024-12-31

    Plan: Pro (€89/month)

    [CODE_BLOCK]

    Wenn "Past Due":

    [CODE_BLOCK]

    → Billing → Update Payment Method

    → Kreditkarte/SEPA aktualisieren

    → "Retry Payment" klicken

    → Warten auf Bestätigung (Email)

    → Display-URL erneut testen (nach 5 Min)

    [CODE_BLOCK]

    Wenn "Canceled":

    [CODE_BLOCK]

    → Billing → Renew Subscription

    → Plan wählen (Basic/Pro/Premium)

    → Payment einrichten

    → Bestätigen

    → Nach erfolgreicher Zahlung: Display funktioniert

    [CODE_BLOCK]

    2. Support kontaktieren für Reaktivierung:

    Falls Billing-Portal nicht funktioniert:

    [CODE_BLOCK]

    Email: support@rifadigital.com

    Betreff: Account Reaktivierung - [Hotel-Name]

    Hotel-ID: 550e8400-e29b-41d4-a716-446655440000

    Problem: Subscription abgelaufen, möchte erneuern

    Gewünschter Plan: Pro / Premium

    [CODE_BLOCK]

    Ursache 3: Netzwerk/DNS-Problem - Server nicht erreichbar

    Problem: Display hat kein Internet ODER DNS löst lobbyflight.com nicht auf.

    Debugging

    1. Ping-Test:

    [CODE_BLOCK]bash

    Android Display: Terminal-App installieren

    Oder via ADB:

    adb shell ping lobbyflight.com

    Erwartet:

    64 bytes from 76.76.21.21: icmp_seq=1 ttl=54 time=20.5 ms

    Fehler:

    ping: unknown host lobbyflight.com → DNS-Problem

    Network unreachable → Kein Internet

    [CODE_BLOCK]

    2. DNS-Lookup:

    [CODE_BLOCK]bash

    nslookup lobbyflight.com

    Erwartet:

    Name: lobbyflight.com

    Address: 76.76.21.21 (Vercel IP)

    Fehler:

    ** server can't find lobbyflight.com → DNS blockiert

    [CODE_BLOCK]

    3. Alternative URL testen:

    [CODE_BLOCK]

    Probieren:

  • https://lobbyflight.com/display/demo
  • https://76.76.21.21/display/demo (direkte IP)
  • https://www.lobbyflight.com/display/demo
  • Falls 2) funktioniert → DNS-Problem

    Falls 3) funktioniert → www-Redirect fehlt

    Falls nichts funktioniert → Firewall/Netzwerk

    [CODE_BLOCK]

    Schritt-für-Schritt-Lösung

    1. DNS-Server ändern:

    [CODE_BLOCK]

    Android Display → Einstellungen → Netzwerk & Internet

    → WiFi → [Ihr Netzwerk]

    → Erweiterte Optionen

    → IP-Einstellungen: Statisch

    DNS 1: 8.8.8.8 (Google)

    DNS 2: 8.8.4.4 (Google)

    → Speichern

    → Display neu starten

    → URL erneut testen

    [CODE_BLOCK]

    2. Firewall-Ausnahme:

    Falls Hotel-Netzwerk Firewall hat:

    [CODE_BLOCK]

    IT-Admin bitten folgendes freizuschalten:

  • Domain: lobbyflight.com
  • Domain: *.vercel-dns.com (Vercel CDN)
  • Ports: 443 (HTTPS)
  • IP-Range: 76.76.21.0/24 (Vercel)
  • [CODE_BLOCK]

    3. VPN-Test:

    [CODE_BLOCK]

    Handy als Hotspot:

  • Handy → Mobile Daten → Hotspot aktivieren
  • Android Display → Mit Hotspot verbinden
  • URL testen
  • Falls jetzt funktioniert → Hotel-Netzwerk ist das Problem

    Falls immer noch nicht → Problem liegt wo anders

    [CODE_BLOCK]

    Ursache 4: HTTPS/SSL-Zertifikat Problem

    Code-Location: Browser Trust Store

    Moderne Browser blockieren HTTP oder ungültige HTTPS-Zertifikate.

    Symptome

    [CODE_BLOCK]

    Browser zeigt:

  • "Your connection is not private"
  • "NET::ERR_CERT_AUTHORITY_INVALID"
  • "ERR_CERT_DATE_INVALID"
  • [CODE_BLOCK]

    Häufige SSL-Probleme

    1. System-Zeit falsch auf Android:

    [CODE_BLOCK]

    Falls Display-Datum falsch (z.B. 2020):

    → SSL-Zertifikate gelten als abgelaufen

    → HTTPS wird blockiert

    Lösung:

    Einstellungen → Datum & Uhrzeit

    → Automatisches Datum & Uhrzeit: AN

    → Automatische Zeitzone: AN

    → Display neu starten

    [CODE_BLOCK]

    2. Corporate Proxy mit Self-Signed Certificate:

    [CODE_BLOCK]

    Problem:

    Hotel-Netzwerk hat Proxy → Ersetzt SSL-Zertifikat

    → Chrome vertraut nicht → Blockiert

    Lösung:

    IT-Admin: Proxy für lobbyflight.com ausschließen

    ODER: Root-Zertifikat auf Display installieren

    [CODE_BLOCK]

    3. Vercel SSL-Zertifikat erneuert:

    [CODE_BLOCK]

    Selten, aber möglich:

    Vercel erneuert automatisch Let's Encrypt Certs

    → Browser-Cache hat altes Cert

    → Konflikt

    Lösung:

    Chrome → Einstellungen → Datenschutz

    → Browserdaten löschen

    → "Cached images and files" ✓

    → Zeitraum: Gesamte Zeit

    → Löschen

    [CODE_BLOCK]

    Schritt-für-Schritt-Lösung

    1. SSL-Zertifikat prüfen:

    [CODE_BLOCK]

    Chrome → URL-Leiste → Schloss-Symbol klicken

    → "Zertifikat ist gültig"

    Details prüfen:

    Ausgestellt für: lobbyflight.com

    Ausgestellt von: Let's Encrypt

    Gültig bis: [Datum in Zukunft]

    Falls abgelaufen oder falsch:

    → Screenshot machen

    → Support kontaktieren

    [CODE_BLOCK]

    2. Chrome Flags zurücksetzen:

    [CODE_BLOCK]

    URL: chrome://flags

    Suchen: SSL, Certificate, Security

    → Alle auf "Default" zurücksetzen

    → Chrome neu starten

    [CODE_BLOCK]

    3. Certificate Transparency Logs:

    [CODE_BLOCK]

    Online prüfen:

    https://crt.sh/?q=lobbyflight.com

    Zeigt alle ausgestellten Zertifikate

    → Neuestes sollte gültig sein

    → Vergleichen mit Browser-Cert

    [CODE_BLOCK]

    Ursache 5: Browser-Cache zeigt alte/falsche Version

    Problem: Browser hat alte Version der Display-Seite gecached, die noch fehlerhaft war.

    Service Worker Cache

    Code-Location: /public/sw.js

    LobbyFlight verwendet Service Worker für Offline-Modus:

    [CODE_BLOCK]javascript

    const CACHE_NAME = 'flight-display-v1'

    self.addEventListener('fetch', (event) => {

    // Cached Version wird bevorzugt

    event.respondWith(

    caches.match(request).then((cachedResponse) => {

    if (cachedResponse) {

    return cachedResponse // ← Alte Version!

    }

    return fetch(request)

    })

    )

    })

    [CODE_BLOCK]

    Problem: Nach Code-Update hat Display noch alte Version im Cache.

    Schritt-für-Schritt-Lösung

    1. Service Worker de-registrieren:

    [CODE_BLOCK]javascript

    // Browser Console (F12):

    navigator.serviceWorker.getRegistrations().then(registrations => {

    registrations.forEach(registration => {

    registration.unregister()

    console.log('Service Worker unregistered')

    })

    })

    // Danach:

    location.reload()

    [CODE_BLOCK]

    2. Cache manuell löschen:

    [CODE_BLOCK]javascript

    // Browser Console:

    caches.keys().then(cacheNames => {

    cacheNames.forEach(cacheName => {

    caches.delete(cacheName)

    console.log('Deleted cache:', cacheName)

    })

    })

    // Seite neu laden

    location.reload(true) // Hard reload

    [CODE_BLOCK]

    3. DevTools Cache Disable:

    [CODE_BLOCK]

    F12 → Network Tab

    → ✓ "Disable cache" aktivieren

    → Seite neu laden

    Falls jetzt funktioniert → Cache war das Problem

    → Cache-Strategie mit Support besprechen

    [CODE_BLOCK]

    Debugging-Tools

    1. Display-URL Validator

    [CODE_BLOCK]javascript

    // Browser Console:

    function validateDisplayURL(url) {

    try {

    const urlObj = new URL(url)

    console.log('Protocol:', urlObj.protocol)

    // Erwartet: "https:"

    console.log('Hostname:', urlObj.hostname)

    // Erwartet: "lobbyflight.com"

    console.log('Pathname:', urlObj.pathname)

    // Erwartet: "/display/[UUID]"

    const hotelId = urlObj.pathname.split('/')[2]

    console.log('Hotel ID:', hotelId)

    // Erwartet: UUID-Format

    const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i

    const isValidUUID = uuidRegex.test(hotelId)

    console.log('Valid UUID:', isValidUUID)

    return isValidUUID

    } catch (error) {

    console.error('Invalid URL:', error)

    return false

    }

    }

    // Test:

    validateDisplayURL('https://lobbyflight.com/display/550e8400-e29b-41d4-a716-446655440000')

    [CODE_BLOCK]

    2. Config API Test

    [CODE_BLOCK]javascript

    // Direkter API-Test:

    const hotelId = '550e8400-e29b-41d4-a716-446655440000'

    fetch(https://lobbyflight.com/api/config/${hotelId})

    .then(r => r.json())

    .then(data => {

    if (data.error) {

    console.error('❌ Error:', data.error)

    // "Hotel not found" → ID falsch oder Account inaktiv

    } else {

    console.log('✅ Config loaded:', data.config)

    console.log('Hotel Name:', data.config.name)

    console.log('Airports:', data.config.airports)

    }

    })

    .catch(error => {

    console.error('❌ Network error:', error)

    // Server nicht erreichbar oder CORS-Problem

    })

    [CODE_BLOCK]

    3. Network Diagnostics

    [CODE_BLOCK]bash

    Auf Android Display (Terminal):

    1. DNS Test

    nslookup lobbyflight.com

    2. Ping Test

    ping -c 5 lobbyflight.com

    3. HTTP Test

    curl -I https://lobbyflight.com/display/demo

    4. Trace Route

    traceroute lobbyflight.com

    [CODE_BLOCK]

    Prävention

    Best Practices

    1. Display-URL sicher aufbewahren:

    [CODE_BLOCK]

    Hotel-Unterlagen:

    ==================

    LobbyFlight Display URL:

    https://lobbyflight.com/display/550e8400-e29b-41d4-a716-446655440000

    QR-Code: [Ausdrucken und in IT-Ordner]

    Notfall-Kontakt:

    Support: support@rifadigital.com

    [CODE_BLOCK]

    2. Bookmark im Browser setzen:

    [CODE_BLOCK]

    Chrome auf Android Display:

  • Display-URL öffnen
  • Menü (⋮) → Lesezeichen hinzufügen
  • Name: "LobbyFlight Display"
  • Zu Home-Screen hinzufügen
  • → Icon auf Startbildschirm → Ein-Klick-Start

    [CODE_BLOCK]

    3. Kiosk-Mode mit gespeicherter URL:

    [CODE_BLOCK]

    Fully Kiosk Browser:

    → Settings → Start URL

    → https://lobbyflight.com/display/[IHRE-ID]

    → Auto-Start on Boot: ON

    → Display startet automatisch mit korrekter URL

    [CODE_BLOCK]

    4. Monitoring einrichten:

    [CODE_BLOCK]

    Ping-Monitor (z.B. UptimeRobot):

    URL: https://lobbyflight.com/display/[IHRE-ID]

    Interval: 5 Minuten

    Alert Email: office@grandhotel.com

    → Bei Ausfall: Sofort Email

    [CODE_BLOCK]

    5. Regelmäßige Tests:

    [CODE_BLOCK]

    Wöchentlich:

  • Display URL im Browser öffnen
  • Prüfen ob Flüge angezeigt werden
  • Screenshot machen (Beweis für Funktion)
  • Monatlich:

  • QR-Code scannen (noch gültig?)
  • Subscription Status prüfen
  • Backup der URL in Cloud
  • [CODE_BLOCK]

    Support kontaktieren

    Falls alle Lösungen fehlschlagen:

    [CODE_BLOCK]

    === Display-URL Problem Fehlerbericht ===

    Hotel-Name: _________________

    Hotel-ID: _________________

    Verwendete URL: _________________

    Problem:

    [ ] "Hotel not found" Error

    [ ] Leere Seite

    [ ] Endloses Laden

    [ ] 404 Error

    [ ] SSL/HTTPS Error

    [ ] Andere: __________________

    Screenshots:

  • Display mit Fehlermeldung
  • Browser Console (F12 → Console)
  • Network Tab (F12 → Network → Screenshot)
  • Bereits getestet:

    [ ] URL aus Portal kopiert

    [ ] Demo-URL funktioniert

    [ ] Andere Browser getestet

    [ ] Cache gelöscht

    [ ] Inkognito-Modus

    [ ] QR-Code gescannt

    Netzwerk:

    Internet-Verbindung: WiFi / Ethernet / 4G

    Ping lobbyflight.com: Erfolgreich / Fehlgeschlagen

    DNS Lookup: Erfolgreich / Fehlgeschlagen

    [CODE_BLOCK]

    Support-Email: support@rifadigital.com

    Verwandte Artikel

  • Setup: "Display URL einrichten"
  • Portal: "Hotel-Portal Login"
  • Kiosk: "Kiosk-Mode Setup Android"
  • Network: "Netzwerk-Troubleshooting"
  • Debug-Checkliste

  • [ ] URL-Format korrekt (https://lobbyflight.com/display/UUID)?
  • [ ] UUID vollständig (36 Zeichen)?
  • [ ] URL aus Portal kopiert (nicht manuell getippt)?
  • [ ] Demo-URL funktioniert (/display/demo)?
  • [ ] Subscription aktiv (Billing-Check)?
  • [ ] Internet funktioniert (Ping-Test)?
  • [ ] DNS löst lobbyflight.com auf?
  • [ ] Browser-Cache gelöscht?
  • [ ] Inkognito-Modus getestet?
  • [ ] Support kontaktiert mit allen Daten?
  • Was this article helpful?