Vanliga problem och felsökning
Symptom, orsaker och lösningar för problem som vi kan verifiera i produkten.
Om ditt problem inte finns här, mejla support@rowie.io med skärmdumpar och om möjligt transaktions-ID (eller session-ID, eller fakturanummer).
"Setup required" på Banking eller Tap to Pay
Mobile POS Account-skärmen visar en Setup required-badge på Banking-raden, och Tap to Pay / Terminal Readers är inaktiverade tills Stripe Connect har slutfört onboarding och debiteringar är aktiverade.
- Vendor portal → Banking (sidofält → FINANCE-grupp) → kontrollera statusen.
- Om onboardingen inte är klar, kör igenom Stripes hostade formulär — det berättar exakt vad som saknas (ID, bankuppgifter, företagsinfo).
- Förstagångsinställningar kan ta 1–2 dagar för Stripe att verifiera.
Kontrollen "ready to charge" i appkoden är connectStatus.hasConnectedAccount && connectStatus.chargesEnabled — båda måste vara sanna.
"Cannot delete location — it still has …"
Portalen blockerar inaktivering av en location om det finns beroende poster. Det exakta meddelandet listar vad som blockerar. Kontrollerna (rowie-api/src/routes/locations.ts):
- Open or in-progress table sessions — avsluta eller avbryt dem först.
- Menus, floor plans, active bookings, booking pages — tilldela om till en annan location eller ta bort dem först.
- Only location in the org — du kan inte ta bort din sista.
Flytta beroendena och försök igen.
"Cannot delete menu with open sessions or tabs"
En meny (catalog) kan inte tas bort medan det finns sessioner eller tabs som fortfarande är öppna mot den. Avsluta eller avbryt dem på Tables-sidan och försök sedan ta bort igen. Samma mönster gäller för:
- Floor plans / tables med aktiva sessioner.
- Events / ticket tiers med sålda biljetter.
- Vendor subscription plans med aktiva prenumeranter (avbryt eller migrera dem först).
- Tip pools som inte är i utkast (du kan endast ta bort pooler medan de fortfarande är i utkast).
"Authentication failed" eller fastnat på en skärm efter lång inaktivitet
Auth-tokens går ut efter 15 minuter; både mobilappen och vendor portal uppdaterar automatiskt vid en 401. Om uppdateringen misslyckas (t.ex. refresh-token har också gått ut efter 7 dagar, eller du loggade in på en annan enhet och blev utsparkad) ser du en "Authentication failed"-toast och studsar till login.
- Endast mobil: när du loggar in på en andra enhet får den första enheten SESSION_KICKED och blir tvångsavloggad — detta är medvetet (stulen-telefon-skydd).
- Vendor portal upprätthåller inte single-session — du kan ha flera flikar öppna.
Om du har fastnat mitt på en skärm: logga ut + in igen.
Att stänga en tab misslyckades / "Payment failed"
När ett sparat kort debiteras off-session för att stänga en tab och Stripe nekar det återgår sessionen till open så du kan försöka igen. Vanliga orsaker:
- Kortet kräver ny autentisering / 3DS för varje debitering.
- Kortutgivarens bedrägeriregel mot off-session-debiteringar.
- Otillräckliga medel.
Känd begränsning: Stripes idempotency-nycklar för close-tab är stabila i 24 timmar. Om det första close-tab-försöket nekades returnerar ett nytt försök med samma kort omedelbart samma nekade intent. Lösning: ta en ny Tap to Pay-betalning istället för att stänga via det sparade kortet, eller låt kunden spara ett nytt kort.
"Payment setup required" i kassan
Mobile POS visar detta när du försöker debitera men Stripe Connect inte är helt konfigurerat. Samma fix som "Setup required"-badgen ovan — slutför Banking-onboarding.
Kvitton: skicka och skicka igen
Tap to Pay-kvitton måste uttryckligen skickas — de levereras inte automatiskt från Stripe för card_present-transaktioner.
- På Payment Result-skärmen direkt efter en debitering, ange kundens e-postadress och tryck på Send receipt.
- Senare, öppna en transaktion i History → Send receipt.
Om kvitton inte kommer fram, kontrollera skräpposten först och verifiera sedan att e-postadressen är korrekt på transaktionen.
Realtidsdata ser inaktuell ut
Appen använder Socket.IO för att pusha uppdateringar (orders, sessions, tabs, menus, bookings, invoices, pay runs). TanStack Query är konfigurerad med oändlig stale time och ingen polling — invalideringar kommer från socket-events.
Om något ser inaktuellt ut:
- Dra för att uppdatera på skärmen (mobil) eller ladda om sidan (vendor portal).
- Logga ut och in igen för att tvinga fram en ny socket-anslutning.
- Kontrollera att API URL är nåbar från din enhet.
Vendor-socketen återansluter automatiskt med fräscha tokens (dynamisk auth-callback). Mobilklienten försöker upp till 10 återanslutningar med backoff mellan 1–5 s.
Rate-limited (HTTP 429) på publika menu / table / booking-sidor
API:t rate-limitar skapande av publika preorders, sessions och bookings per IP + session-ID för att mildra bedrägeri (tillagt efter incidenten i april 2026). Normal kundtrafik når inte detta. Om ett lasttest eller en oavsiktlig retry-loop triggar den, vänta tills fönstret rensas (en minut) och försök igen.
Tap to Pay-knappen är gråad
- Apple Tap to Pay entitlement: Första gången på ett nytt Stripe Connect-konto tar Apple 1–2 dagar att aktivera enheten.
- Banking inte aktivt: se "Setup required" ovan.
- Fel enhet: Tap to Pay kräver iPhone XS eller nyare på iOS 16.4+ med lösenkod, eller NFC-kompatibel Android (SDK 26+).
Konto flaggat för granskning
När bedrägeriheuristik utlöses (frekvensen blockerade eller misslyckade debiteringar över tröskelvärden) flippas kontots review_status till needs_review och automatiska utbetalningar pausas. Kontakta supporten — när Rowie-personalen godkänner kontot från admin-kön återupptas utbetalningarna. Skrivskyddad produktanvändning fortsätter att fungera.