Vanlige problemer og feilsøking
Symptomer, årsaker og løsninger for problemer vi kan verifisere i produktet.
Hvis problemet ditt ikke står her, send e-post til support@rowie.io med skjermbilder og transaksjons-ID (eller sesjons-ID, eller fakturanummer) der det er mulig.
"Setup required" på Banking eller Tap to Pay
Mobile POS Account-skjermen viser et Setup required-merke på Banking-raden, og Tap to Pay / Terminal Readers er deaktivert, helt til Stripe Connect har fullført onboarding og belastninger er aktivert.
- Vendor-portalen → Banking (sidefelt → FINANCE-gruppe) → sjekk statusen.
- Hvis onboarding ikke er fullført, gå gjennom Stripes hostede skjema — det forteller deg nøyaktig hva som mangler (ID, bankdetaljer, bedriftsinfo).
- Førstegangs-oppsett kan ta 1–2 dager for at Stripe skal verifisere.
"Klar til å belaste"-sjekken i appkoden er connectStatus.hasConnectedAccount && connectStatus.chargesEnabled — begge må være true.
"Cannot delete location — it still has …"
Portalen blokkerer deaktivering av lokasjon hvis det er avhengige poster. Den eksakte meldingen viser hva som blokkerer. Sjekkene (rowie-api/src/routes/locations.ts):
- Åpne eller pågående bordsesjoner — gjør opp eller kanseller dem først.
- Menyer, planløsninger, aktive bookings, bookings-sider — reallokér til en annen lokasjon eller slett dem først.
- Eneste lokasjon i org-en — du kan ikke slette din siste.
Flytt avhengighetene, og prøv igjen.
"Cannot delete menu with open sessions or tabs"
En meny (catalog) vil ikke slettes mens det er sesjoner eller tabs fortsatt åpne mot den. Gjør opp eller kanseller dem på Tables-siden, og prøv slettingen igjen. Samme mønster gjelder for:
- Planløsninger / bord med aktive sesjoner.
- Events / billett-nivåer med solgte billetter.
- Vendor subscription plans med aktive abonnenter (kanseller eller migrer dem først).
- Tip pools som ikke er i draft (du kan bare slette pools mens de fortsatt er i draft).
"Authentication failed" eller fast på en skjerm etter lang inaktivitet
Auth-tokens utløper etter 15 minutter; mobilappen og vendor-portalen auto-fornyer begge på en 401. Hvis fornyelsen feiler (f.eks. refresh-token utløpt etter 7 dager, eller du logget inn på en annen enhet og ble kicket), ser du en "Authentication failed"-toast og blir kastet til innlogging.
- Kun mobil: når du logger inn på en annen enhet, får den første enheten SESSION_KICKED og blir tvunget ut — dette er bevisst (beskyttelse mot stjålet telefon).
- Vendor-portalen håndhever ikke enkelt-sesjon — du kan ha flere faner åpne.
Hvis du står fast midt på en skjerm: logg ut + inn igjen.
Lukking av tab feilet / "Payment failed"
Når et lagret kort belastes off-session for å lukke en tab og Stripe avviser det, returnerer sesjonen til open slik at du kan prøve igjen. Vanlige årsaker:
- Kortet krever frisk autentisering / 3DS for hver belastning.
- Utsteders svindelregel på off-session belastninger.
- Utilstrekkelige midler.
Kjent begrensning: Stripe idempotency-nøkler for close-tab er stabile i 24 timer. Hvis det første close-tab-forsøket ble avvist, vil ny forsøk med samme kort umiddelbart returnere samme avviste intent. Workaround: ta en frisk Tap to Pay-betaling i stedet for å lukke via det lagrede kortet, eller la kunden lagre et nytt kort.
"Payment setup required" i checkout
Mobile POS viser dette når du prøver å belaste, men Stripe Connect ikke er ferdig oppsatt. Samme fiks som "Setup required"-merket over — fullfør Banking-onboarding.
Kvitteringer: sende og sende på nytt
Tap to Pay-kvitteringer må eksplisitt sendes — de blir ikke automatisk levert fra Stripe for card_present-transaksjoner.
- På Payment Result-skjermen rett etter en belastning, skriv inn kundens e-post og trykk Send receipt.
- Senere, åpne en hvilken som helst transaksjon i History → Send receipt.
Hvis kvitteringer ikke kommer frem, sjekk spam først, og verifiser deretter at e-postadressen er riktig på transaksjonen.
Sanntidsdata ser utdaterte ut
Appen bruker Socket.IO for å pushe oppdateringer (bestillinger, sesjoner, tabs, menyer, bookings, fakturaer, pay runs). TanStack Query er konfigurert med uendelig stale time og ingen polling — invalideringer kommer fra socket-hendelser.
Hvis noe ser utdatert ut:
- Dra ned for å oppdatere på skjermen (mobil) eller last siden på nytt (vendor-portalen).
- Logg ut og inn igjen for å tvinge en ny socket-tilkobling.
- Sjekk at API-URL-en er tilgjengelig fra enheten din.
Vendor-socketen kobler seg automatisk til på nytt med ferske tokens (dynamic auth callback). Mobilklienten prøver opp til 10 gjenoppkoblinger med backoff mellom 1–5 s.
Rate-limited (HTTP 429) på offentlige meny- / bord- / booking-sider
API-et rate-limiter offentlig oppretting av preorder, sesjon og booking per IP + sesjons-ID for å motvirke svindel (lagt til etter hendelsen i april 2026). Normal kundetrafikk treffer ikke dette. Hvis en lasttest eller en utilsiktet retry-løkke utløser det, vent på at vinduet skal klarne (et minutt) og prøv igjen.
Tap to Pay-knappen er grået ut
- Apple Tap to Pay entitlement: Første gang på en ny Stripe Connect-konto bruker Apple 1–2 dager på å aktivere enheten.
- Banking ikke aktiv: se "Setup required" over.
- Feil enhet: Tap to Pay trenger iPhone XS eller nyere på iOS 16.4+ med passkode, eller NFC-utstyrt Android (SDK 26+).
Konto flagget for gjennomgang
Etter at svindel-heuristikker utløses (blokkerte eller mislykkede belastningsrater over terskler), flippes kontoens review_status til needs_review og auto-utbetalinger pauses. Kontakt support — når Rowie-staben godkjenner kontoen fra admin-køen, gjenopptas utbetalinger. Skrivebeskyttet produktbruk fortsetter å fungere.