Almindelige problemer og fejlfinding
Symptomer, årsager og løsninger på problemer, vi kan verificere i produktet.
Hvis dit problem ikke er her, så send en e-mail til support@rowie.io med skærmbilleder og transaktions-ID (eller session-ID eller fakturanummer), hvor det er muligt.
"Setup required" på Banking eller Tap to Pay
Mobil-POS'ens Account-skærm viser et Setup required-mærke på Banking-rækken, og Tap to Pay / Terminal Readers er deaktiveret, indtil Stripe Connect er færdig med onboarding, og opkrævninger er aktiveret.
- Leverandørportal → Banking (sidemenu → FINANCE-gruppen) → tjek status.
- Hvis onboarding ikke er færdig, så gå igennem Stripes hostede formular — den fortæller dig præcis, hvad der mangler (ID, bankoplysninger, virksomhedsoplysninger).
- Førstegangsopsætninger kan tage 1–2 dage for Stripe at verificere.
"Klar til at opkræve"-tjekket i appens kode er connectStatus.hasConnectedAccount && connectStatus.chargesEnabled — begge skal være sande.
"Cannot delete location — it still has …"
Portalen blokerer deaktivering af en lokation, hvis der er afhængige poster. Den nøjagtige besked viser, hvad der blokerer. Tjekkene (rowie-api/src/routes/locations.ts):
- Åbne eller igangværende bord-sessioner — afregn eller annullér dem først.
- Menuer, floor plans, aktive bookinger, booking-sider — flyt dem til en anden lokation, eller slet dem først.
- Eneste lokation i organisationen — du kan ikke slette din sidste.
Flyt afhængighederne, og prøv igen.
"Cannot delete menu with open sessions or tabs"
En menu (catalog) kan ikke slettes, så længe der er sessioner eller tabs stadig åbne på den. Afregn eller annullér dem på Tables-siden, og prøv så at slette igen. Samme mønster gælder for:
- Floor plans / borde med aktive sessioner.
- Events / billet-niveauer med solgte billetter.
- Vendor subscription plans med aktive abonnenter (annullér eller migrér dem først).
- Drikkepenge-puljer der ikke er i kladde (du kan kun slette puljer, mens de stadig er kladde).
"Authentication failed" eller fast på en skærm efter lang inaktivitet
Auth-tokens udløber efter 15 minutter; mobilappen og leverandørportalen opdaterer begge automatisk ved 401. Hvis opdateringen mislykkes (f.eks. fordi refresh-tokenet også er udløbet efter 7 dage, eller du har logget ind på en anden enhed og blev sparket af), vil du se en "Authentication failed"-toast og blive sendt til login.
- Kun mobil: når du logger ind på en anden enhed, får den første enhed SESSION_KICKED og bliver tvangs-logget ud — dette er bevidst (beskyttelse mod stjålet telefon).
- Leverandørportalen håndhæver ikke single-session — du kan have flere faner åbne.
Hvis du sidder fast midt på en skærm: log ud og ind igen.
Lukning af en tab mislykkedes / "Payment failed"
Når et gemt kort opkræves off-session for at lukke en tab, og Stripe afviser det, går sessionen tilbage til open, så du kan prøve igen. Almindelige årsager:
- Kortet kræver frisk godkendelse / 3DS for hver opkrævning.
- Udsteders svindelregel ved off-session-opkrævninger.
- Manglende dækning.
Kendt begrænsning: Stripes idempotency-nøgler til close-tab er stabile i 24 timer. Hvis det første close-tab-forsøg blev afvist, returnerer en ny forsøgsopkrævning med samme kort straks den samme afviste intent. Workaround: tag en frisk Tap to Pay-betaling i stedet for at lukke via det gemte kort, eller få kunden til at gemme et nyt kort.
"Payment setup required" i checkout
Mobil-POS viser dette, når du prøver at opkræve, men Stripe Connect ikke er fuldt opsat. Samme løsning som "Setup required"-mærket ovenfor — afslut Banking-onboarding.
Kvitteringer: afsendelse og gensendelse
Tap to Pay-kvitteringer skal eksplicit sendes — de leveres ikke automatisk fra Stripe ved card_present-transaktioner.
- På Payment Result-skærmen umiddelbart efter en opkrævning indtaster du kundens e-mail og trykker på Send receipt.
- Senere kan du åbne en hvilken som helst transaktion i History → Send receipt.
Hvis kvitteringer ikke kommer frem, så tjek spam først, og verificér derefter, at e-mailen er korrekt på transaktionen.
Realtidsdata ser forældede ud
Appen bruger Socket.IO til at pushe opdateringer (ordrer, sessioner, tabs, menuer, bookinger, fakturaer, pay runs). TanStack Query er konfigureret med uendelig stale-tid og uden polling — invalideringer kommer fra socket-events.
Hvis noget ser forældet ud:
- Pull to refresh på skærmen (mobil), eller genindlæs siden (leverandørportal).
- Log ud og ind igen for at tvinge en ny socket-forbindelse.
- Tjek at API-URL'en kan nås fra din enhed.
Leverandør-socketten genforbinder automatisk med friske tokens (dynamisk auth-callback). Mobilklienten forsøger op til 10 genforbindelser med backoff mellem 1–5 s.
Rate-limited (HTTP 429) på offentlige menu- / bord- / booking-sider
API'en rate-limiter offentlig oprettelse af preorder, session og booking pr. IP + session-ID for at mindske svindel (tilføjet efter hændelsen i april 2026). Normal kundetrafik rammer ikke dette. Hvis en belastningstest eller en utilsigtet retry-løkke udløser det, så vent på, at vinduet rydder (et minut), og prøv igen.
Tap to Pay-knappen er grålig
- Apple Tap to Pay-rettighed: Første gang på en ny Stripe Connect-konto tager det Apple 1–2 dage at aktivere enheden.
- Banking ikke aktiv: se "Setup required" ovenfor.
- Forkert enhed: Tap to Pay kræver iPhone XS eller nyere på iOS 16.4+ med en adgangskode, eller en NFC-kapabel Android (SDK 26+).
Konto markeret til gennemgang
Når svindel-heuristikker udløses (rate for blokerede eller mislykkede opkrævninger over grænseværdier), skifter kontoens review_status til needs_review, og automatiske udbetalinger sættes på pause. Kontakt support — når Rowie-personale har godkendt kontoen fra admin-køen, genoptages udbetalinger. Læseafhængig produktbrug fortsætter med at virke.