Felsökning & FAQ

Nästan alla supportärenden vi får är en av punkterna nedan. Leta upp symtomet, läs orsaken, gå till sidan som förhindrar det.

Sessionen dör när flera klienter kör#

  • Symtom: anrop börjar plötsligt ge 401 fastän token nyss fungerade, ofta i vågor.
  • Orsak: ett API-konto har en aktiv session. Varje ny inloggning avlivar den föregående — inklusive era egna testskript, en andra instans i klustret eller en kollegas lokala miljö.
  • Åtgärd: en singleton per konto, delad tokenlagring mellan instanser och separata konton per miljö. Se Autentisering & tokens.

Inloggning vid varje öppning#

  • Symtom: långsamma öppningar, sporadiska 401 och dörrar som inte öppnas när två personer trycker samtidigt.
  • Orsak: varje öppning loggar in på nytt, vilket både lägger till latens och avlivar den föregående sessionen.
  • Åtgärd: logga in server-side en gång och återanvänd token. Öppningsögonblicket ska innehålla exakt ett anrop. Se Golden path.

Glömd roterad refresh-token#

  • Symtom: förnyelsen fungerar en gång och misslyckas nästa gång, med 400 eller 401 från /api/auth/refresh.
  • Orsak: refresh-tokens är engångs. Svaret innehåller både en ny access-token och en ny refresh-token, och den gamla dör direkt. Sparas bara access-token är sessionen förlorad vid nästa förnyelse.
  • Åtgärd: skriv båda i samma atomiska operation. Se Autentisering & tokens.

Två samtidiga förnyelser#

  • Symtom: sessionen dör under last, men fungerar i lugna perioder.
  • Orsak: två samtidiga 401 startar två parallella refresh-anrop. Det andra använder en token som det första just förbrukat.
  • Åtgärd: single-flight-lås runt förnyelsen. Se Autentisering & tokens.

Enhetslistan hämtas vid varje öppning#

  • Symtom: onödig latens och fler anrop än nödvändigt, ibland 429.
  • Orsak: enhetslistan hämtas i öppningsögonblicket i stället för på schema.
  • Åtgärd: cachelagra mappningen och uppdatera den på schema samt vid 404. Se Golden path och Gränser & retry.

Fel eller föråldrat deviceId#

  • Symtom: 404 på unlock för en dörr som brukade fungera.
  • Orsak: {deviceId} är hårdkodat, eller mappningen är gammal efter att en enhet bytts ut.
  • Åtgärd: kör om enhetssynken och uppdatera mappningen. Hårdkoda aldrig id:t. Se Koncept & entitetsmodell.

403 på en dörr ni ser i listan#

  • Symtom: enheten finns i GET /api/user/device men unlock ger 403.
  • Orsak: nyckeln som ger öppningsrätt saknas eller har återkallats, även om enheten är synlig.
  • Åtgärd: kontakta KiiOn för att kontrollera nyckeldelningen. Retry hjälper inte. Se Support.

Rätt anrop, fel miljö#

  • Symtom: 401 direkt efter en till synes lyckad inloggning, eller enhetslistan är tom.
  • Orsak: STAGE-uppgifter används mot PROD eller tvärtom. Kontona är separata.
  • Åtgärd: kontrollera BASE_URL mot kontot. Se API-referens.

Token gick ut mitt i drift#

  • Symtom: allt fungerar i dagar och slutar sedan fungera.
  • Orsak: ingen proaktiv förnyelse — koden väntar på ett fel som kommer när access-token går ut.
  • Åtgärd: förnya var 36:e timme eller utifrån exp. Se Autentisering & tokens.

200 på unlock men dörren öppnas inte#

  • Symtom: API:t svarar 200, dörren rör sig inte.
  • Orsak: 200 betyder att kommandot är accepterat och vidarebefordrat — inte att dörren fysiskt öppnats. Enheten kan vara offline eller ur räckvidd.
  • Åtgärd: läs enhetens tillstånd med GET /api/device/{deviceId} och kontrollera online. Se Quickstart.

Hittar du inte felet?

Kopiera sidan som Markdown: Visa som Markdown