Omfattande referens för alla felkoder i Blue GraphQL API, organiserade efter kategori


Felresponsformat

Blue's GraphQL API returnerar fel i ett standardiserat format enligt GraphQL-specifikationen. När ett fel inträffar inkluderar svaret en errors-array med detaljerad information om vad som gick fel.

Exempel på felrespons

{
  "errors": [
    {
      "message": "Todo was not found.",
      "extensions": {
        "code": "TODO_NOT_FOUND"
      }
    }
  ]
}

Felstruktur

Varje felobjekt innehåller:

  • meddelande: En människoläsbar beskrivning av felet
  • extensions.code: En maskinläsbar felkod för programmeringshantering

Produktionsfelssäkerhet

Blue implementerar ett säkerhetssystem för felexponering:

  • Säkra fel: Visa faktiska felkoder och meddelanden till klienter
  • Icke-säkra fel: Returnera generiska INTERNAL_SERVER_ERROR för att dölja känsliga detaljer
  • Resurs hittades inte: Alla *_NOT_FOUND-fel anses vara säkra och exponeras alltid

Felkategorier

Blue definierar 108 anpassade felkoder organiserade i följande kategorier:

Autentisering och auktoriseringsfel

Felkod Meddelande Beskrivning
UNAUTHENTICATED "Autentisering krävs." Begäran kräver autentisering men ingen tillhandahålls
FORBIDDEN "Du är inte auktoriserad." Autentiserad men saknar nödvändiga behörigheter

Resurs hittades inte-fel (52 totalt)

Kärnresurser

Felkod Meddelande Beskrivning
TODO_NOT_FOUND "Todo hittades inte." Post/todo existerar inte eller användaren saknar åtkomst
TODO_LIST_NOT_FOUND "Todo-lista hittades inte." Lista existerar inte eller användaren saknar åtkomst
PROJECT_NOT_FOUND "Projekt hittades inte." Projekt existerar inte eller användaren saknar åtkomst
COMPANY_NOT_FOUND "Företag hittades inte." Företag existerar inte eller användaren saknar åtkomst
USER_NOT_FOUND "Användare hittades inte." Användaren existerar inte i systemet

Anpassade fält och formulär

Felkod Meddelande Beskrivning
CUSTOM_FIELD_NOT_FOUND "Anpassat fält hittades inte." Anpassat fält existerar inte
CUSTOM_FIELD_OPTION_NOT_FOUND "Anpassad fältalternativ hittades inte." Valt fältalternativ existerar inte
FORM_NOT_FOUND "Formulär hittades inte." Formulärmall existerar inte
FORM_FIELD_NOT_FOUND "Formulärfält hittades inte." Formulärfält existerar inte

Projektkomponenter

Felkod Meddelande Beskrivning
TAG_NOT_FOUND "Tagg hittades inte." Tagg existerar inte i projektet
AUTOMATION_NOT_FOUND "Automatisering hittades inte." Automatiseringsregel existerar inte
CHART_NOT_FOUND "Diagram hittades inte." Dashboard-diagram existerar inte
WEBHOOK_NOT_FOUND "Webhook hittades inte." Webhook-konfiguration existerar inte
TEMPLATE_NOT_FOUND "Mall hittades inte." Projektmall existerar inte

Kommentarer och aktiviteter

Felkod Meddelande Beskrivning
COMMENT_NOT_FOUND "Kommentar hittades inte." Kommentar existerar inte
ACTIVITY_NOT_FOUND "Aktivitet hittades inte." Aktivitetsloggpost existerar inte
REACTION_NOT_FOUND "Reaktion hittades inte." Kommentarreaktion existerar inte

Andra resurser

Felkod Meddelande Beskrivning
FILE_NOT_FOUND "Fil hittades inte." Filbilaga existerar inte
SUBSCRIPTION_NOT_FOUND "Prenumeration hittades inte." Faktureringsprenumeration existerar inte
INVOICE_NOT_FOUND "Faktura hittades inte." Fakturapost existerar inte
CHECKLIST_NOT_FOUND "Checklista hittades inte." Checklista existerar inte
CHECKLIST_ITEM_NOT_FOUND "Checklistapunkt hittades inte." Checklistapunkt existerar inte
PROJECT_ROLE_NOT_FOUND "Projektroll hittades inte." Anpassad projektroll existerar inte
PROJECT_ACCESS_NOT_FOUND "Projektåtkomst hittades inte." Användarens projektåtkomst existerar inte
NOTIFICATION_NOT_FOUND "Notifikation hittades inte." Notifikation existerar inte
DASHBOARD_NOT_FOUND "Dashboard hittades inte." Dashboard existerar inte
KEY_NOT_FOUND "Nyckel hittades inte." Inställningsnyckel existerar inte

Valideringsfel

Felkod Meddelande Beskrivning
BAD_USER_INPUT "Ogiltig inmatning." Generisk inmatningsvalideringsfel
VALIDATION_ERROR "Ogiltiga parametrar" Begärningsparametrar misslyckades med validering
BAD_EMAIL "Du måste ange en giltig e-postadress." Ogiltigt e-postformat
INVALID_IDS "Ogiltiga id." En eller flera ID:n i begäran är ogiltiga
PHONE_INVALID "Telefon är ogiltig." Ogiltigt telefonnummerformat
URL_INVALID "URL är ogiltig." Ogiltigt URL-format
INVALID_RECURRING_DUE_DATE "Ogiltigt förfallodatum för återkommande uppgift" Validering av datum för återkommande uppgift misslyckades
INVALID_COLOR "Ogiltig färg" Färgvärde matchar inte förväntat format

Affärslogikfel

Gränser och kvoter

Felkod Meddelande Beskrivning
COMPANY_LIMIT "Du har nått företagsgränsen för ditt konto." Maximalt antal företag nått
PROJECT_LIMIT "Du har nått projektgränsen för ditt företag." Maximalt antal projekt nått
USER_LIMIT "Du har nått användargränsen för ditt företag." Maximalt antal användare nått
PROJECT_TEMPLATE_LIMIT "Du har nått mallgränsen för ditt företag." Maximalt antal mallar nått
CUSTOM_FIELD_LIMIT "Gränsen för anpassade fält nådd." Maximalt antal anpassade fält nått
TODO_LIST_LIMIT "Du har nått listgränsen för ditt projekt." Maximalt antal listor per projekt
TOO_MANY_TODOS "För många todos." Postgräns överskriden
TOO_MANY_OPTIONS "För många alternativ." Gräns för valfältalternativ överskriden
MAX_FILE_SIZE "Max filstorlek är 4.8 GB" Gräns för filuppladdning överskriden

Resurskonflikter

Felkod Meddelande Beskrivning
TAG_ALREADY_EXISTS "Tagg existerar redan." Tagg med samma namn existerar i projektet
COMPANY_SLUG_ALREADY_EXISTS "Företag existerar redan." Företagsslag/URL är upptagen
USER_ALREADY_EXISTS "Användare existerar redan." Användarens e-postadress är redan registrerad
ALREADY_INVITED "Användaren är redan inbjuden." Användaren har redan en väntande inbjudan
USER_ALREADY_IN_PROJECT "Användaren är redan på detta projekt." Användaren har redan projektåtkomst
FILE_TYPE_NOT_ALLOWED "Filtyp inte tillåten." Uppladdad filtyp är begränsad

Behörighets- och åtkomstfel

Felkod Meddelande Beskrivning
UNABLE_TO_DELETE_ONLY_ADMIN "Kan inte ta bort den enda administratören i företaget." Kan inte ta bort sista administratören
UNABLE_TO_UPDATE_OWNER "Kan inte uppdatera ÄGARE." Kan inte ändra ägarens behörigheter
TODO_LIST_IS_HIDDEN "Todo-lista är dold." Lista dold från användarens roll
COMPANY_NOT_ACTIVE "Företaget är inte aktivt." Företagets prenumeration inaktiv
PROJECT_NOT_ACTIVE "Projektet är inte aktivt." Projektet är arkiverat/inaktivt

Dataintegritetsfel

Felkod Meddelande Beskrivning
UNABLE_TO_DELETE_LIST_WITH_TODOS "Kan inte ta bort lista med todos." Listan måste vara tom för att ta bort
UNABLE_TO_DELTE_FILE "Kan inte ta bort fil." Filborttagning misslyckades (stavfel i kod)
UNABLE_TO_MOVE_TODO "Kan inte flytta todo." Kan inte flytta post mellan listor
DEPENDENCY_HAS_DEPENDENCY "Beroende har beroende" Cirkulärt beroende upptäcktes
TODO_DEPENDS_ON_ITSELF "Todo beror på sig själv" Självrefererande beroende

Stripe/Betalningsfel

Felkod Meddelande Beskrivning
STRIPE_CREATING_CUSTOMER "Fel vid skapande av kund i Stripe." Skapande av Stripe-kund misslyckades
STRIPE_ALREADY_SUBSCRIBED "Redan prenumererad." Aktiv prenumeration existerar
STRIPE_MISSING_PAYMENT_METHOD "Saknar betalningsmetod." Ingen betalningsmetod registrerad
STRIPE_CREATING_SUBSCRIPTION "Fel vid skapande av prenumeration i Stripe." Skapande av prenumeration misslyckades
STRIPE_UPDATING_SUBSCRIPTION "Fel vid uppdatering av prenumeration i Stripe." Uppdatering av prenumeration misslyckades
STRIPE_CHECKOUT_SESSION "Fel vid skapande av kassa-session i Stripe." Skapande av kassa-session misslyckades
STRIPE_CUSTOMER_PORTAL "Fel vid skapande av kundportal i Stripe." Skapande av portal-session misslyckades
STRIPE_TAX_ID "Kan inte spara skatte-ID" Validering/spara av skatte-ID misslyckades
PAYMENT_REQUIRED "Betalning krävs." Funktion kräver aktiv prenumeration
NO_PAYMENT_REQUIRED "Ingen betalning krävs." Betalning behövs inte för operation

Autentisering och sessionsfel

Felkod Meddelande Beskrivning
INVALID_CREDENTIALS "Ogiltiga uppgifter." Användarnamn/lösenord felaktigt
EXPIRED_RESET_TOKEN "Återställningstoken har gått ut." Lösenordsåterställningstoken har gått ut
OAUTH_FAILED "OAuth-processen misslyckades." OAuth-autentisering misslyckades
SAML_NOT_ENABLED "SSO (SAML) är inte aktiverat." SAML SSO är inte konfigurerat
SSO_AUTO_PROVISION_DISABLED "Automatisk provisionering är inaktiverad." Kan inte automatiskt skapa SSO-användare

Hastighetsbegränsning

Hastighetsbegränsning hanteras av graphql-rate-limit-paketet med olika konfigurationer:

Begränsningstyp Fönster Max begärningar Tillämpas på
Standard 60s 500 Most queries/mutations
Sensitive 300s 10 Password reset, auth operations
Expensive 60s 20 Complex queries, bulk operations
Search 60s 60 Search operations
File Upload 60s 100 File upload operations

När hastighetsbegränsningen överskrids kommer du att få ett standard GraphQL-fel med ett meddelande som anger att gränsen överskridits.

System- och interna fel

Felkod Meddelande Beskrivning
INTERNAL_SERVER_ERROR "Internt serverfel." Generellt fel för icke-säkra fel i produktion
UNKNOWN_ERROR "Okänt fel." Oförutsett fel inträffade
RESOLVER_NOT_FOUND "Resolver hittades inte" GraphQL-resolver saknas
FIELD_NOT_IN_SCHEMA "Fält finns inte i schemat" Begärt fält existerar inte

Bästa praxis för felhantering

Klientsidehantering

try {
  const result = await client.mutate({
    mutation: CREATE_TODO,
    variables: { input }
  });
} catch (error) {
  if (error.graphQLErrors?.length > 0) {
    const errorCode = error.graphQLErrors[0].extensions?.code;
    
    switch (errorCode) {
      case 'UNAUTHENTICATED':
        // Redirect to login
        break;
      case 'TODO_NOT_FOUND':
        // Show "Record not found" message
        break;
      case 'VALIDATION_ERROR':
        // Display validation errors
        break;
      default:
        // Show generic error message
    }
  }
}

Vanliga felscenarier

  1. Autentisering krävs: UNAUTHENTICATED - Användaren behöver logga in
  2. Behörighet nekad: FORBIDDEN - Användaren saknar nödvändig roll/behörighet
  3. Resurs hittades inte: *_NOT_FOUND - Resursen existerar inte eller användaren kan inte få åtkomst till den
  4. Validering misslyckades: VALIDATION_ERROR, BAD_USER_INPUT - Kontrollera inmatningsparametrar
  5. Hastighetsbegränsad: Kontrollera hastighetsbegränsningshuvuden och implementera backoff
  6. Betalning krävs: PAYMENT_REQUIRED - Funktionen kräver prenumeration

Relaterad dokumentation

AI-assistent

Svar genereras med hjälp av AI och kan innehålla misstag.

Hur kan jag hjälpa dig?

Fråga mig vad som helst om Blue eller denna dokumentation.

Tryck Enter för att skicka • Shift+Enter för ny rad • ⌘I för att öppna