Skip to content

Feilsøking

Vanlige problemer og løsninger for Lumi-widgeten.

Survey dukker ikke opp

Symptom: Komponenten er rendret, men ingenting vises på skjermen.

Sjekk 1: initialOpen er satt til false

Widgeten starter som standard åpen (initialOpen: true). Hvis du har satt initialOpen: false, vises bare den minimerte knappen.

tsx
// ❌ Starter minimert
<LumiSurveyDock behavior={{ initialOpen: false }} />

// ✅ Starter åpen (default)
<LumiSurveyDock behavior={{ initialOpen: true }} />
Sjekk 2: Dismissed-tilstand fra tidligere visning

Widgeten husker at brukeren lukket den. Under utvikling kan dette persistere mellom sidelaster.

Løsning for utvikling:

  • Bruk storageStrategy: "none" for å deaktivere persistering
  • Eller tøm localStorage/cookies og last siden på nytt
tsx
// For utvikling/testing
<LumiSurveyDock behavior={{ storageStrategy: "none" }} />
Sjekk 3: Cooldown-perioden er aktiv

Etter at brukeren lukker surveyen, er default cooldown 30 dager. Under utvikling kan du sette den lavere:

tsx
<LumiSurveyDock behavior={{ dismissCooldownDays: 0 }} />
Sjekk 4: CSS mangler

Uten CSS-import kan widgeten rendre med usynlige elementer. Se Layout virker tom under.

403 fra API

Symptom: transport.submit feiler med HTTP 403.

Sjekk:

  1. API-nøkkel er gyldig — verifiser at X-Api-Key-headeren inneholder riktig pk_-nøkkel
  2. Nøkkelen er ikke revokert — sjekk via admin-API-et
  3. Allowed origins — sjekk at domenet du sender fra er i nøkkelens allowedOrigins
  4. Riktig endepunkt — enterprise bruker POST /api/v1/submission

Ingen data i dashboard

Symptom: Innsending ser ut til å fungere (ingen feil), men data dukker ikke opp i dashboardet.

Sjekk:

  1. Sender du riktig payload? Backend skal videresende submission.transportPayload — ikke hele submission-objektet.

    ts
    // ✅ Riktig
    body: JSON.stringify(submission.transportPayload)
    
    // ❌ Feil
    body: JSON.stringify(submission)
  2. Riktig endepunkt? Sjekk at du treffer riktig Lumi API-endepunkt: POST /api/v1/submission

  3. Sjekk nettverksfanen i DevTools for å verifisere at requesten faktisk sendes og får 2xx-respons.

  4. Verifiser surveyId — dashboardet filtrerer på surveyId. Sjekk at du leter under riktig ID.

Layout virker tom

Symptom: Widgeten vises, men uten styling — ingen farger, rar layout, elementer overlapper.

Årsak: Manglende CSS-import:

tsx
import "lumi-survey/styles.css";

Dismissed-tilstand persisteres ikke

Symptom: Brukeren lukker surveyen, men den dukker opp igjen ved neste sidelast.

Årsak: Widgeten bruker localStorage til å huske dismissed-tilstand. Hvis localStorage er utilgjengelig — typisk i privat nettlesing (Safari), når kvoten er full, eller i en sandkasse-iframe — kan dismissal ikke persisteres.

Løsning: Lytt på onDismissalPersistFailed-eventet for å oppdage og logge feilen, eller sett storageStrategy: "none" hvis du bevisst ønsker at surveyen vises på nytt hver sidelast.

tsx
<LumiSurveyDock
  events={{
    onDismissalPersistFailed: (cause) => {
      console.warn("Lagring feilet:", cause);
    },
  }}
/>

Se Lagring for full oversikt over lagringsstrategier.

Validering feiler uventet

Symptom: Brukeren får valideringsfeil selv om de har svart.

Sjekk:

  • Har du required: true på spørsmål som er skjult med visibleIf? Skjulte spørsmål hoppes over i validering, men dobbeltsjekk at betingelsen fungerer som forventet.
  • Bruk onValidationFailed for å se hvilke spørsmål som mangler svar:
tsx
<LumiSurveyDock
  events={{
    onValidationFailed: (missing) => {
      console.log("Mangler svar:", missing);
    },
  }}
/>

Trenger du mer hjelp?

Spør i #lumi på Slack — vi hjelper gjerne!

Du kan også sjekke disse sidene:

Lumi Analytics — bygget på navikt/lumi (MIT-lisens)