Časté problémy a řešení potíží
Příznaky, příčiny a opravy problémů, které dokážeme ověřit v produktu.
Pokud váš problém zde není, napište na support@rowie.io se screenshoty a pokud možno s ID transakce (nebo ID relace, nebo číslem faktury).
„Setup required" u Banking nebo Tap to Pay
Obrazovka Account v mobilním POS zobrazuje odznak Setup required na řádku Banking a Tap to Pay / Terminal Readers jsou zakázány, dokud Stripe Connect nedokončí onboarding a nejsou povoleny platby.
- Vendor portál → Banking (postranní panel → skupina FINANCE) → zkontrolujte stav.
- Pokud onboarding není dokončen, projděte hostovaným formulářem Stripe — přesně vám řekne, co chybí (doklady, bankovní údaje, informace o firmě).
- První nastavení může Stripe ověřovat 1–2 dny.
Kontrola „připraveno k účtování" v kódu aplikace zní connectStatus.hasConnectedAccount && connectStatus.chargesEnabled — obě podmínky musí být pravdivé.
„Cannot delete location — it still has …"
Portál blokuje deaktivaci lokace, pokud existují závislé záznamy. Přesná zpráva vyjmenuje, co blokuje. Kontroly (rowie-api/src/routes/locations.ts):
- Otevřené nebo probíhající stolové relace — nejprve je vypořádejte nebo zrušte.
- Menu, půdorysy, aktivní rezervace, rezervační stránky — přiřaďte je k jiné lokaci nebo nejprve smažte.
- Jediná lokace v organizaci — nemůžete smazat svou poslední.
Přesuňte závislosti a opakujte.
„Cannot delete menu with open sessions or tabs"
Menu (katalog) nelze smazat, dokud existují otevřené relace nebo taby. Vypořádejte nebo zrušte je na stránce Tables a opakujte mazání. Stejné pravidlo platí pro:
- Půdorysy / stoly s aktivními relacemi.
- Akce / kategorie vstupenek s prodanými vstupenkami.
- Vendor subscription plans s aktivními odběrateli (nejprve je zrušte nebo migrujte).
- Tip pools, které nejsou v draftu (pooly můžete smazat pouze v draftu).
„Authentication failed" nebo zaseknutí na obrazovce po dlouhé nečinnosti
Autorizační tokeny vyprší po 15 minutách; mobilní aplikace i vendor portál se automaticky obnovují při 401. Pokud obnovení selže (např. refresh token také vypršel po 7 dnech, nebo jste se přihlásili na jiném zařízení a byli odhlášeni), uvidíte toast „Authentication failed" a budete přesměrováni na přihlášení.
- Pouze mobil: když se přihlásíte na druhém zařízení, první zařízení dostane SESSION_KICKED a je nuceně odhlášeno — to je záměrné (ochrana před krádeží telefonu).
- Vendor portál nevynucuje jedinou relaci — můžete mít otevřeno více záložek současně.
Pokud jste uvíznuti uprostřed obrazovky: odhlaste se a znovu přihlaste.
Uzavření tabu selhalo / „Payment failed"
Když je uložená karta účtována mimo relaci pro uzavření tabu a Stripe ji zamítne, relace se vrátí do stavu open, abyste mohli zkusit znovu. Časté příčiny:
- Karta vyžaduje čerstvou autentizaci / 3DS pro každou platbu.
- Pravidlo proti podvodům u vydavatele u plateb mimo relaci.
- Nedostatek prostředků.
Známé omezení: Stripe idempotency klíče pro close-tab jsou stabilní po 24 hodin. Pokud byl první pokus o close-tab zamítnut, opakování se stejnou kartou okamžitě vrátí stejný zamítnutý intent. Řešení: vezměte čerstvou platbu Tap to Pay místo uzavření přes uloženou kartu, nebo nechte zákazníka uložit novou kartu.
„Payment setup required" při placení
Mobilní POS to zobrazí, když chcete účtovat, ale Stripe Connect není plně nastaven. Stejná oprava jako u odznaku „Setup required" výše — dokončete onboarding Banking.
Účtenky: odesílání a opětovné odesílání
Účtenky Tap to Pay musí být explicitně odeslány — Stripe je nedoručuje automaticky pro transakce card_present.
- Na obrazovce Payment Result hned po platbě zadejte e-mail zákazníka a klepněte na Send receipt.
- Později otevřete libovolnou transakci v History → Send receipt.
Pokud účtenky nedoráží, zkontrolujte spam, poté ověřte správnost e-mailu na transakci.
Data v reálném čase vypadají zastarale
Aplikace používá Socket.IO k pushování aktualizací (objednávky, relace, taby, menu, rezervace, faktury, pay runs). TanStack Query je nakonfigurován s nekonečným stale time a bez pollingu — invalidace přicházejí ze socketových událostí.
Pokud něco vypadá zastarale:
- Stáhněte obrazovku dolů pro obnovení (mobil) nebo znovu načtěte stránku (vendor portál).
- Odhlaste se a znovu přihlaste, abyste vynutili nové socketové připojení.
- Zkontrolujte, že je URL API dosažitelné z vašeho zařízení.
Vendor socket se automaticky znovu připojuje s čerstvými tokeny (dynamický auth callback). Mobilní klient zkusí až 10 opětovných připojení s backoff mezi 1–5 s.
Omezení rychlosti (HTTP 429) na veřejných stránkách menu / stolu / rezervace
API omezuje rychlost vytváření veřejných preorders, relací a rezervací podle IP + session ID kvůli omezení podvodů (přidáno po incidentu z dubna 2026). Běžný zákaznický provoz to nezasáhne. Pokud to spustí load-test nebo náhodná smyčka opakování, počkejte, až okno vyprší (asi minuta) a zkuste to znovu.
Tlačítko Tap to Pay je šedé
- Apple Tap to Pay entitlement: Při prvním použití u nového účtu Stripe Connect potřebuje Apple 1–2 dny k aktivaci zařízení.
- Banking není aktivní: viz „Setup required" výše.
- Špatné zařízení: Tap to Pay vyžaduje iPhone XS nebo novější na iOS 16.4+ s přístupovým kódem, nebo Android s NFC (SDK 26+).
Účet označen ke kontrole
Po spuštění protipodvodové heuristiky (poměr blokovaných nebo neúspěšných plateb překročí prahy) se review_status účtu přepne na needs_review a automatické výplaty se pozastaví. Kontaktujte podporu — jakmile zaměstnanci Rowie schválí účet z admin fronty, výplaty se obnoví. Použití produktu jen pro čtení funguje dál.