Yleiset ongelmat ja vianetsintä
Oireet, syyt ja korjaukset ongelmiin, jotka voimme tuotteessa varmentaa.
Jos ongelmaasi ei ole tässä, lähetä sähköpostia osoitteeseen support@rowie.io kuvakaappausten ja tapahtuman ID:n (tai istunnon ID:n tai laskunumeron) kanssa, jos mahdollista.
"Setup required" -merkki Banking- tai Tap to Pay -kohdassa
Mobiili-POS:n Account-näyttö näyttää Setup required -merkin Banking-rivillä, ja Tap to Pay / Terminal Readers on poissa käytöstä, kunnes Stripe Connect -käyttöönotto on valmis ja veloitukset on otettu käyttöön.
- Myyjäportaali → Banking (sivupalkki → FINANCE-ryhmä) → tarkista tila.
- Jos käyttöönotto ei ole valmis, käy läpi Stripen ylläpidetty lomake — se kertoo tarkalleen, mitä puuttuu (henkilöllisyys, pankkitiedot, yritystiedot).
- Ensikertaisissa käyttöönotoissa voi mennä 1–2 päivää, ennen kuin Stripe varmentaa tilin.
Sovelluskoodissa "valmis veloittamaan" -tarkistus on connectStatus.hasConnectedAccount && connectStatus.chargesEnabled — molempien on oltava tosia.
"Cannot delete location — it still has …"
Portaali estää sijainnin poiston, jos on riippuvia tietueita. Tarkka viesti listaa, mikä estää. Tarkistukset (rowie-api/src/routes/locations.ts):
- Avoimet tai käynnissä olevat pöytäistunnot — sulje tai peruuta ne ensin.
- Menut, pohjapiirrokset, aktiiviset varaukset, varaussivut — siirrä toiselle sijainnille tai poista ensin.
- Organisaation ainoa sijainti — viimeistä ei voi poistaa.
Siirrä riippuvuudet ja yritä uudelleen.
"Cannot delete menu with open sessions or tabs"
Menua (catalog) ei voi poistaa, jos sitä vastaan on avoimia istuntoja tai tab-istuntoja. Sulje tai peruuta ne Tables-sivulla ja yritä poistoa uudelleen. Sama kuvio koskee:
- Pohjapiirrokset / pöydät, joilla on aktiivisia istuntoja.
- Tapahtumat / lipputasot, joilla on myytyjä lippuja.
- Vendor subscription -suunnitelmat, joilla on aktiivisia tilaajia (peruuta tai siirrä ne ensin).
- Tippipoolit, jotka eivät ole draft-tilassa (pooleja voi poistaa vain niiden ollessa draft-tilassa).
"Authentication failed" tai jumi pitkän käyttämättömän ajan jälkeen
Authentication-tokenit vanhenevat 15 minuutin jälkeen; sekä mobiilisovellus että myyjäportaali päivittävät automaattisesti 401-virheen kohdalla. Jos päivitys epäonnistuu (esim. refresh-token vanhentui 7 päivän jälkeen tai kirjauduit toiselle laitteelle ja sinut potkittiin pois), näet "Authentication failed" -toastin ja palaat kirjautumiseen.
- Vain mobiili: kun kirjaudut toiselle laitteelle, ensimmäinen laite saa SESSION_KICKED ja kirjautuu väkisin ulos — tämä on tahallista (varkaussuojaus).
- Myyjäportaali ei pakota yhden istunnon sääntöä — voit pitää useita välilehtiä auki.
Jos jäät jumiin näytöllä: kirjaudu ulos ja takaisin sisään.
Tabin sulkeminen epäonnistui / "Payment failed"
Kun tallennettua korttia veloitetaan off-session tab-istunnon sulkemiseksi ja Stripe hylkää sen, istunto palautuu tilaan open, jotta voit yrittää uudelleen. Yleisiä syitä:
- Kortti vaatii uuden tunnistautumisen / 3DS:n jokaisen veloituksen yhteydessä.
- Korttimyöntäjän petossääntö off-session-veloituksissa.
- Riittämätön kate.
Tunnettu rajoitus: close-tabin Stripe-idempotency-avaimet ovat stabiilit 24 tunnin ajan. Jos ensimmäinen close-tab-yritys hylättiin, samalla kortilla uudelleenyrittäminen heti palauttaa saman hylätyn intentin. Kiertotie: ota tuore Tap to Pay -maksu sen sijaan, että suljet tallennetulla kortilla, tai pyydä asiakasta tallentamaan uusi kortti.
"Payment setup required" kassalla
Mobiili-POS näyttää tämän, kun yrität veloittaa, mutta Stripe Connect ei ole täysin määritetty. Sama korjaus kuin yllä olevassa "Setup required" -merkissä — viimeistele Banking-käyttöönotto.
Kuitit: lähettäminen ja uudelleenlähettäminen
Tap to Pay -kuitit on lähetettävä erikseen — ne eivät automaattisesti tule Stripesta card_present-tapahtumissa.
- Veloituksen jälkeisellä Payment Result -näytöllä syötä asiakkaan sähköposti ja napauta Send receipt.
- Myöhemmin avaa mikä tahansa tapahtuma kohdasta History → Send receipt.
Jos kuitteja ei tule, tarkista ensin roskaposti ja vahvista sitten, että sähköposti on oikein tapahtumassa.
Reaaliaikainen data näyttää vanhentuneelta
Sovellus käyttää Socket.IO:ta päivitysten työntämiseen (orders, sessions, tabs, menus, bookings, invoices, pay runs). TanStack Query on määritetty ilman pollausta ja äärettömällä stale time -arvolla — invalidoinnit tulevat socket-tapahtumista.
Jos jokin näyttää vanhentuneelta:
- Vedä-päivittääksesi näytöllä (mobiili) tai lataa sivu uudelleen (myyjäportaali).
- Kirjaudu ulos ja takaisin pakottaaksesi uuden socket-yhteyden.
- Tarkista, että API-URL on saavutettavissa laitteeltasi.
Myyjäportaalin socket yhdistyy automaattisesti uudelleen uusilla tokeneilla (dynaaminen auth-callback). Mobiiliklientti yrittää enintään 10 uudelleenyhdistämistä 1–5 sekunnin backoff-ajalla.
Rate-limit (HTTP 429) julkisilla menu- / table- / booking-sivuilla
API rajoittaa julkisten preorder-, istunto- ja varauspyyntöjen luontia IP:n + session ID:n mukaan petosten hillitsemiseksi (lisätty huhtikuun 2026 tapauksen jälkeen). Normaali asiakasliikenne ei osu tähän. Jos kuormitustestaus tai vahingossa tehty uudelleenyrityssilmukka laukaisee rajoituksen, odota ikkunan tyhjenemistä (minuutti) ja yritä uudelleen.
Tap to Pay -painike on harmaa
- Apple Tap to Pay -oikeudet: Uudella Stripe Connect -tilillä ensimmäisellä kerralla Apple ottaa 1–2 päivää laitteen aktivointiin.
- Banking ei aktiivinen: katso yllä oleva "Setup required".
- Väärä laite: Tap to Pay vaatii iPhone XS:n tai uudemman iOS 16.4+ -käyttöjärjestelmällä ja salasanalla, tai NFC-yhteensopivan Androidin (SDK 26+).
Tili merkitty tarkastettavaksi
Petosheuristiikan laukaistua (estettyjen tai epäonnistuneiden veloitusten määrä ylittää kynnykset), tilin review_status muuttuu tilaan needs_review ja automaattiset payoutit pysähtyvät. Ota yhteyttä tukeen — kun Rowien henkilökunta hyväksyy tilin admin-jonosta, payoutit jatkuvat. Vain luku -käyttö tuotteessa jatkuu.