Display-URL funktioniert nicht - Hotel nicht gefunden
Was tun wenn die Display-URL einen Fehler zeigt oder das Hotel nicht gefunden wird
Display-URL funktioniert nicht - Hotel nicht gefunden
Symptome
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]
┌────────────────────────────────────────────────┐
│ Display URL: │
│ https://lobbyflight.com/display/550e8400-... │
│ [Copy URL] [QR Code] │
└────────────────────────────────────────────────┘
[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:
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:
[CODE_BLOCK]
3. VPN-Test:
[CODE_BLOCK]
Handy als Hotspot:
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:
[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:
→ 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:
Monatlich:
[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:
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