Obsługa błędów
Jeśli żądanie API nie może zostać pomyślnie zrealizowane, otrzymasz komunikat o błędzie.
Format błędu
Błędy zwracane przez API mają następujące cechy:
- Kod HTTP: w przypadku błędów na poziomie aplikacji odpowiedź będzie miała kod
200 – OK. Inne kody są zwracane w przypadku błędów warstwy transportowej, takich jak500 - Internal server error,429 - Too many requestslub400 - Bad request. - Odpowiedź JSON: treść odpowiedzi zawiera tablicę
errorsz dodatkowymi informacjami o każdym błędzie. - Częściowe dane: żądania zwracają częściowe dane, więc obiekt
datamoże również zawierać pewne informacje. Na przykład jeśli zapytasz o trzy pola, możesz otrzymać dwa pola i jeden błąd. - Nagłówek
Retry-After: odpowiedzi z błędami zawierają nagłówekRetry-After, który wskazuje, jak długo musisz odczekać przed wysłaniem kolejnego żądania. - Nagłówki limitów szybkości: każda odpowiedź zawiera nagłówki
RateLimit-PolicyiRateLimit, które informują o bieżącym stanie limitów szybkości. Dzięki nim możesz z wyprzedzeniem monitorować pozostały limit. - Każda odpowiedź API zawiera
request_idw obiekcieextensions. Możesz go użyć do diagnozowania problemów.
Przykładowy format
Poniżej znajduje się przykład błędu na poziomie aplikacji:
{
"data" : [],
"errors": [
{
"message": "User unauthorized to perform action",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"me"
],
"extensions": {
"code": "UserUnauthorizedException",
"error_data": {},
"status_code": 403
}
}
],
"account_id": 123456
}
{
"data": {
"me": {
"id": "4012689",
"photo_thumb": null
},
"complexity": {
"query": 12
}
},
"errors": [
{
"message": "Photo unavailable.",
"locations": [
{
"line": 4,
"column": 5
}
],
"path": [
"me",
"photo_thumb"
],
"extensions": {
"code": "ASSET_UNAVAILABLE"
}
}
],
"account_id": 18888528
}
Błędy według kodu statusu
Błędy 2xx
Błędy z kodem statusu 2xx oznaczają, że monday.com nie akceptuje żądanej czynności z powodu ograniczeń lub reguł platformy. Mogą wystąpić z różnych przyczyn, na przykład gdy podasz nieprawidłowe wartości, nie masz wymaganych uprawnień lub przekroczysz limit znaków.
Poniżej znajdziesz niektóre z najczęstszych błędów:
| Kod błędu | Kod statusu HTTP | Opis | Rozwiązanie |
|---|---|---|---|
API_TEMPORARILY_BLOCKED |
200 | Wystąpił problem z API i jego używanie zostało tymczasowo zablokowane | Sprawdź stronę statusu, aby zobaczyć aktualizacje. Ponów żądanie, gdy problem zostanie rozwiązany. |
ColumnValueException |
200 | Nieprawidłowy format wartości kolumny |
|
CorrectedValueException |
200 | Zapytanie ma nieprawidłowy typ | Jeśli próbujesz zaktualizować kolumnę prostymi wartościami (wartościami typu String), upewnij się, że kolumna obsługuje ten format wartości. |
CreateBoardException |
200 | Błąd w mutacji tworzącej tablicę |
|
InvalidArgumentException |
200 | Argument przekazany w zapytaniu jest nieprawidłowy, przekroczono limit paginacji, wysyłasz zapytanie o identyfikator tablicy podelementów albo nie znaleziono identyfikatora tablicy |
|
InvalidBoardIdException |
200 | Identyfikator tablicy przekazany w zapytaniu jest nieprawidłowy | Sprawdź, czy identyfikator tablicy istnieje i czy masz do niej dostęp. |
InvalidColumnIdException |
200 | Identyfikator kolumny przekazany w zapytaniu jest nieprawidłowy | Sprawdź, czy identyfikator kolumny istnieje i czy masz do niej dostęp. |
InvalidUserIdException |
200 | Identyfikator użytkownika przekazany w zapytaniu jest nieprawidłowy | Sprawdź, czy identyfikator użytkownika istnieje i czy ta osoba jest przypisana do Twojej tablicy. |
InvalidVersionException |
200 | Żądana wersja API jest nieprawidłowa | Upewnij się, że Twoje żądanie ma prawidłowy format. |
ItemNameTooLongException |
200 | Nazwa elementu przekracza dozwoloną liczbę znaków | Upewnij się, że nazwa elementu ma od 1 do 255 znaków. |
ItemsLimitationException |
200 | Przekroczono limit 10 000 elementów na tablicę | Zmniejsz liczbę elementów na tablicy. |
missingRequiredPermissions |
200 | Operacja wymaga uprawnień OAuth wykraczających poza zakresy przyznane aplikacji | Sprawdź zakresy uprawnień aplikacji i upewnij się, że zażądano odpowiednich zakresów. |
Parse error on... |
200 | Nieprawidłowy format ciągu zapytania |
|
ResourceNotFoundException |
200 | Identyfikator przekazany w zapytaniu jest nieprawidłowy |
|
Błędy klienta 4xx
Błędy z kodem statusu 4xx oznaczają, że problem wystąpił po stronie klienta (czyli po Twojej stronie). Mogą mieć różne przyczyny, na przykład brak dostępu do żądanych informacji, zbyt częste używanie API lub nieprawidłowe dane wejściowe.
Poniżej znajdziesz niektóre z najczęstszych błędów:
| Błąd | Kod statusu HTTP | Opis | Rozwiązanie |
|---|---|---|---|
Bad request |
400 | Struktura ciągu zapytania została przekazana nieprawidłowo |
|
JsonParseException |
400 | Problem z interpretacją przekazanego kodu JSON | Sprawdź poprawność kodu JSON za pomocą walidatora, na przykład JSON lint. |
Unauthorized |
401 | Nie masz uprawnień do dostępu do danych |
|
Your ip is restricted |
401 | Administrator konta ograniczył dostęp do systemu z określonych adresów IP | Upewnij się, że administrator konta nie ograniczył dostępu z Twojego adresu IP. |
UserUnauthorizedException |
403 | Użytkownik nie ma wymaganych uprawnień do wykonania danej czynności | Sprawdź, czy użytkownik ma uprawnienia do wyświetlania lub edytowania danego zasobu. |
USER_ACCESS_DENIED |
403 | Użytkownik nie ma uprawnień do korzystania z API | Sprawdź, czy użytkownik jest aktywny, nie ma wyłącznie uprawnień do wyświetlania i ma potwierdzony adres e-mail. |
ResourceNotFoundException |
404 | Identyfikator przekazany w zapytaniu jest nieprawidłowy | Sprawdź, czy identyfikator użytkownika, którego dotyczy zapytanie, istnieje i czy ta osoba jest przypisana do Twojej tablicy. |
DeleteLastGroupException |
409 | Trwa usuwanie lub archiwizowanie ostatniej grupy na tablicy | Sprawdź, czy na tablicy jest co najmniej jedna grupa. |
IDEMPOTENCY_CONFLICT |
409 | Żądanie z tym kluczem idempotencji jest już przetwarzane | Ponów żądanie po upływie czasu określonego w nagłówku odpowiedzi Retry-After. Szczegółowe informacje znajdziesz w sekcji Idempotencja. |
RecordInvalidException |
422 | Oznacza jedną z następujących sytuacji:
|
|
Resource is currently locked, please try again later |
423 | Tablica jest tymczasowo zablokowana, ponieważ inny proces wykonuje równoczesną aktualizację (np. aktualizuje kolumnę lub uruchamia automatyzację). W tym czasie operacje zapisu są zablokowane, aby zapewnić spójność danych. |
|
maxConcurrencyExceeded |
429 | Przekroczono maksymalną liczbę zapytań, które mogą być wykonywane jednocześnie |
|
Rate Limit Exceeded |
429 | Wysłano ponad 5 000 żądań w ciągu minuty | Zmniejsz liczbę żądań wysyłanych w ciągu minuty. |
COMPLEXITY_BUDGET_EXHAUSTED |
429 | Osiągnięto limit złożoności |
|
IP_RATE_LIMIT_EXCEEDED |
429 | Osiągnięto limit dla adresu IP |
|
Błędy serwera 5xx
Błędy z kodem statusu 5xx oznaczają, że problem wystąpił po stronie serwera monday.
Poniżej znajdziesz niektóre z najczęstszych błędów:
| Błąd | Kod statusu HTTP | Opis | Rozwiązanie |
|---|---|---|---|
Internal Server Error |
500 | Oznacza, że wystąpił problem. Częste przyczyny:
|
|
📘 Dołącz do naszej społeczności deweloperów!
Stworzyliśmy społeczność dla deweloperów. Możesz tam wyszukiwać wcześniejsze dyskusje i znajdować rozwiązania, zadawać pytania, poznawać nowe funkcje i aktualizacje oraz uczyć się wskazówek i trików od innych deweloperów. Dołącz do nas! 😎