Erreurs
import { VimineError } from '@vimine/sdk'; // aussi depuis /serverTout ce qui tourne mal arrive sous forme de VimineError, une sous-classe de Error. code est l’identifiant
stable sur lequel brancher votre logique : le code d’un document problem+json (RFC 9457), l’error d’une réponse
OAuth, ou l’un des codes propres au SDK.
Propriétés
Section intitulée « Propriétés »| Type | ||
|---|---|---|
code |
string |
le code stable |
message |
string |
le detail ou le title du problème, ou error_description |
status |
number | null |
le statut HTTP, null pour les erreurs locales |
requestId |
string | null |
le request_id de la réponse : citez-le dans vos signalements |
detail |
string | null |
le detail du problème |
errors |
FieldError[] — { field?, code?, message? } |
les détails de validation_failed et de identification_required ; une entrée codicefiscale_mismatch porte aussi mismatches, hints et confirmable (guide) |
cause |
unknown |
l’erreur sous-jacente (network, framed) |
isAuthError |
boolean |
true pour « la session n’existe plus : reconnectez-vous » (401, invalid_token, token_expired, missing_token, invalid_grant, not_signed_in) |
Les codes du SDK
Section intitulée « Les codes du SDK »code |
Quand |
|---|---|
invalid_options |
constructeur sans clientId, redirectUri ou clientSecret |
network |
la requête n’a pas atteint l’API (cause porte l’erreur d’origine) |
not_signed_in |
pas de session, ou pas de jeton de rafraîchissement, pour un appel authentifié |
no_flow |
un retour sans connexion lancée depuis ce navigateur (stockage vide ou expiré) |
state_mismatch |
le retour ne correspond pas à la connexion qui a été lancée |
framed |
signIn() depuis un cadre d’une autre origine |
http_<status> |
une réponse d’erreur sans corps JSON reconnaissable |
Les codes de l’API (insufficient_scope, not_found, validation_failed, statuto_required, rate_limited,
…) et ceux d’OAuth (invalid_grant, access_denied, unauthorized_client, …) se trouvent dans
Autorisations, erreurs et limites.
Les gérer
Section intitulée « Les gérer »import { VimineError } from '@vimine/sdk';
try { await vimine.membership.acceptStatuto({ version });} catch (err) { if (!(err instanceof VimineError)) throw err; if (err.isAuthError) return vimine.signIn({ returnTo: location.pathname }); switch (err.code) { case 'statuto_outdated': return alert(`Une version plus récente est en vigueur : ${err.detail}`); case 'insufficient_scope': return vimine.signIn({ scopes: ['statuto:accept'], prompt: 'consent' }); case 'rate_limited': return setTimeout(retry, 5000); default: console.error(err.code, err.requestId); }}