Standardowe komunikaty o błędach

W tym dokumencie opisujemy niektóre kody błędów i komunikaty zwracane przez interfejsy API Google. Wymienione tu błędy występują w globalnej lub domyślnej domenie interfejsów API Google. Wiele interfejsów definiuje również własne domeny, które zwracają własne błędy niewystępujące w domenie globalnej. W przypadku tych błędów wartość właściwości domain w odpowiedzi JSON będzie wartością charakterystyczną dla interfejsu API. Jej przykładem może być youtube.parameter.

Na tej stronie opisujemy błędy według ich kodów stanu HTTP, zgodnie z definicją w RFC 7231.

Ta przykładowa odpowiedź JSON przedstawia sposób powiadamiania o błędzie globalnym:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalidParameter",
    "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]",
    "locationType": "parameter",
    "location": "chart"
   }
  ],
  "code": 400,
  "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]"
 }
}

Błędy

  1. MOVED_PERMANENTLY (301) (Przeniesiono na stałe)
  2. SEE_OTHER (303) (Zobacz inne)
  3. NOT_MODIFIED (304) (Nie zmodyfikowano)
  4. TEMPORARY_REDIRECT (307) (Tymczasowe przekierowanie)
  5. BAD_REQUEST (400) (Nieprawidłowe żądanie)
  6. UNAUTHORIZED (401) (Brak uprawnień)
  7. PAYMENT_REQUIRED (402) (Wymagana płatność)
  8. FORBIDDEN (403) (Zabronione)
  9. NOT_FOUND (404) (Nie znaleziono)
  10. METHOD_NOT_ALLOWED (405) (Metoda niedozwolona)
  11. CONFLICT (409) (Konflikt)
  12. GONE (410) (Brak)
  13. PRECONDITION_FAILED (412) (Warunek wstępny nie został spełniony)
  14. REQUEST_ENTITY_TOO_LARGE (413) (Zbyt duże żądanie)
  15. REQUESTED_RANGE_NOT_SATISFIABLE (416) (Zakres żądania niedostępny)
  16. EXPECTATION_FAILED (417) (Oczekiwanie nie zostało spełnione)
  17. PRECONDITION_REQUIRED (428) (Wymagane spełnienie warunków wstępnych)
  18. TOO_MANY_REQUESTS (429) (Zbyt wiele żądań)
  19. INTERNAL_SERVER_ERROR (500) (Błąd wewnętrzny serwera)
  20. NOT_IMPLEMENTED (501) (Nie wdrożono)
  21. SERVICE_UNAVAILABLE (503) (Usługa niedostępna)

MOVED_PERMANENTLY (301) (Przeniesiono na stałe)

Kod błędu Opis
movedPermanently To i kolejne żądania tej samej operacji muszą być wysyłane na adres URL podany w nagłówku Location tej odpowiedzi, a nie na adres, na który żądanie zostało pierwotnie wysłane.

SEE_OTHER (303) (Zobacz inne)

Kod błędu Opis
seeOther Żądanie zostało przetworzone. Aby odebrać odpowiedź, wyślij żądanie GET na adres URL podany w nagłówku Location.
mediaDownloadRedirect Żądanie zostało przetworzone. Aby odebrać odpowiedź, wyślij żądanie GET na adres URL podany w nagłówku Location.

NOT_MODIFIED (304) (Nie zmodyfikowano)

Kod błędu Opis
notModified Warunek podany w nagłówku If-None-Match nie został spełniony. Ta odpowiedź wskazuje, że żądany dokument nie został zmodyfikowany i powinna zostać pobrana wersja z pamięci podręcznej. Sprawdź wartość nagłówka żądania HTTP If-None-Match.

TEMPORARY_REDIRECT (307) (Tymczasowe przekierowanie)

Kod błędu Opis
temporaryRedirect Aby żądanie zostało przetworzone, należy przesłać je ponownie na adres URL podany w nagłówku Location tej odpowiedzi.

BAD_REQUEST (400) (Nieprawidłowe żądanie)

Kod błędu Opis
badRequest Żądanie do interfejsu API jest nieprawidłowe lub ma nieprawidłowy format. Dlatego serwer interfejsu API nie zrozumiał żądania.
badBinaryDomainRequest Żądanie domeny binarnej jest nieprawidłowe.
badContent Typ treści danych żądania lub typ treści części żądania wieloczęściowego jest nieobsługiwany.
badLockedDomainRequest Żądanie zablokowanej domeny jest nieprawidłowe.
corsRequestWithXOrigin Żądanie CORS zawiera nagłówek XD3 X-Origin, który wskazuje na nieprawidłowe żądanie CORD.
endpointConstraintMismatch Żądanie nie zostało zrealizowane, ponieważ nie było zgodne z podanym interfejsem API. Sprawdź, czy wartość ścieżki adresu URL jest prawidłowa.
invalid Żądanie nie zostało zrealizowane, ponieważ zawierało nieprawidłową wartość. Może chodzić o wartość parametru, nagłówka lub właściwości.
invalidAltValue Wartość parametru alt określa nieprawidłowy format wyjściowy.
invalidHeader Żądanie nie zostało zrealizowane, ponieważ zawierało nieprawidłowy nagłówek.
invalidParameter Żądanie nie zostało zrealizowane, ponieważ zawierało nieprawidłowy parametr lub wartość parametru. Przejrzyj dokumentację interfejsu API, by ustalić, które parametry są poprawne w danym żądaniu.
invalidQuery Żądanie jest nieprawidłowe. Przejrzyj dokumentację interfejsu API, by ustalić, które parametry są obsługiwane w żądaniu, i sprawdzić, czy żądanie zawiera nieprawidłową kombinację parametrów lub nieprawidłową wartość parametru. Sprawdź wartość parametru żądania q.
keyExpired Klucz interfejsu API podany w żądaniu wygasł, co oznacza, że serwer interfejsu API nie może sprawdzić limitu dla aplikacji wysyłającej żądanie. Otwórz Google Developers Console, by dowiedzieć się więcej lub uzyskać nowy klucz.
keyInvalid Klucz interfejsu API podany w żądaniu jest nieprawidłowy, co oznacza, że serwer interfejsu API nie może sprawdzić limitu dla aplikacji wysyłającej żądanie. Aby znaleźć swój klucz interfejsu API lub uzyskać go, skorzystaj z Google Developers Console.
lockedDomainCreationFailure W ciągu zapytania odebrano token OAuth, którego ten interfejs API zabrania w przypadku formatów odpowiedzi innych niż JSON lub XML. Jeśli to możliwe, wyślij token OAuth w nagłówku autoryzacji.
notDownload Pod ścieżkę adresu URL /download/* można przesyłać tylko żądania pobrania elementów multimedialnych. Wyślij żądanie ponownie pod tę samą ścieżkę, ale bez prefiksu /download.
notUpload Żądanie nie zostało zrealizowane, ponieważ nie jest to żądanie przesłania danych, a tylko takie żądania można przesyłać do identyfikatorów URI /upload/*. Wyślij żądanie ponownie pod tę samą ścieżkę, ale bez prefiksu /upload.
parseError Serwer interfejsu API nie mógł przeanalizować treści żądania.
required W żądaniu do interfejsu API brakuje wymaganych informacji. Może chodzić o parametr lub właściwość zasobu.
tooManyParts Wieloczęściowe żądanie nie zostało zrealizowane, ponieważ zawierało zbyt wiele części.
unknownApi Interfejs API wywoływany przez żądanie nie został rozpoznany.
unsupportedMediaProtocol Klient używa nieobsługiwanego protokołu multimedialnego.
unsupportedOutputFormat Wartość parametru alt określa format wyjściowy, którego ta usługa nie obsługuje. Sprawdź wartość parametru żądania alt.
wrongUrlForUpload Żądanie przesyłania nie zostało zrealizowane, ponieważ wysłano je do nieprawidłowego identyfikatora URI. Żądania przesyłania muszą być wysyłane do identyfikatorów URI zawierających prefiks /upload/*. Wyślij żądanie ponownie pod tę samą ścieżkę, ale z prefiksem /upload.

UNAUTHORIZED (401) (Brak uprawnień)

Kod błędu Opis
unauthorized Użytkownik nie ma uprawnień do wykonania żądania.
authError Dane uwierzytelniające podane dla żądania są nieprawidłowe. Sprawdź wartość nagłówka żądania HTTP Authorization.
expired Sesja wygasła. Sprawdź wartość nagłówka żądania HTTP Authorization.
lockedDomainExpired Żądanie nie zostało zrealizowane, ponieważ dotychczas poprawna domena zablokowana wygasła.
required Użytkownik musi być zalogowany, aby wysłać to żądanie do interfejsu API. Sprawdź wartość nagłówka żądania HTTP Authorization.

PAYMENT_REQUIRED (402) (Wymagana płatność)

Kod błędu Opis
dailyLimitExceeded402 Osiągnięto dzienny limit budżetu ustawiony przez dewelopera.
quotaExceeded402 Żądana operacja wymaga więcej zasobów, niż pozwala limit. Do ukończenia operacji wymagana jest płatność.
user402 Żądana operacja wymaga pewnego rodzaju płatności przez uwierzytelnionego użytkownika.

FORBIDDEN (403) (Zabronione)

Kod błędu Opis
forbidden Żądana operacja jest zabroniona i nie można jej wykonać.
accessNotConfigured Projekt nie jest skonfigurowany pod kątem dostępu do tego interfejsu API. Użyj Google Developers Console, by aktywować interfejs API dla projektu.
accessNotConfigured Projekt został zablokowany z powodu naruszenia zasad. Patrz http://support.google.com/code/go/developer_compliance.
accessNotConfigured Projekt został oznaczony do usunięcia.
accountDeleted Konto użytkownika powiązane z danymi uwierzytelniającymi żądanie zostało usunięte. Sprawdź wartość nagłówka żądania HTTP Authorization.
accountDisabled Konto użytkownika powiązane z danymi uwierzytelniającymi żądanie zostało wyłączone. Sprawdź wartość nagłówka żądania HTTP Authorization.
accountUnverified Adres e-mail użytkownika wysyłającego żądanie nie został zweryfikowany. Sprawdź wartość nagłówka żądania HTTP Authorization.
concurrentLimitExceeded Żądanie nie zostało zrealizowane, ponieważ został osiągnięty limit jednoczesnego wykorzystania.
dailyLimitExceeded Osiągnięto dzienny limit wykorzystania interfejsu API.
dailyLimitExceeded Osiągnięto dzienny limit wykorzystania i projekt został zablokowany z powodu naruszenia zasad. Aby rozwiązać ten problem, przejdź do formularza pomocy w zakresie zgodności z zasadami interfejsów API Google.
dailyLimitExceededUnreg Żądanie nie zostało zrealizowane, ponieważ został osiągnięty dzienny limit wykorzystania interfejsu API bez uwierzytelnienia. Dalsze używanie interfejsu API wymaga zarejestrowania się przez Google Developers Console.
downloadServiceForbidden Interfejs API nie obsługuje usługi pobierania.
insufficientAudience Nie można zrealizować żądania dla tych odbiorców.
insufficientAuthorizedParty Nie można zrealizować żądania dla tej aplikacji.
insufficientPermissions Uwierzytelniony użytkownik nie ma uprawnień do wykonania tego żądania.
limitExceeded Nie można zrealizować żądania z powodu ograniczeń dostępu lub liczby żądań.
lockedDomainForbidden Ten interfejs API nie obsługuje zablokowanych domen.
quotaExceeded Żądana operacja wymaga więcej zasobów, niż pozwala limit.
rateLimitExceeded W danym okresie wysłano zbyt wiele żądań.
rateLimitExceededUnreg Przekroczono limit liczby żądań i musisz zarejestrować aplikację, aby móc nadal wywoływać interfejs API. Zarejestruj się przez Google Developers Console.
responseTooLarge Żądany zasób jest zbyt duży, by go zwrócić.
servingLimitExceeded Ogólny limit liczby żądań podany dla interfejsu API został już osiągnięty.
sslRequired Do wykonania tej operacji wymagany jest protokół SSL.
unknownAuth Serwer interfejsu API nie rozpoznaje schematu autoryzacji używanego dla żądania. Sprawdź wartość nagłówka żądania HTTP Authorization.
userRateLimitExceeded Żądanie nie zostało zrealizowane, bo osiągnięto limit liczby żądań na użytkownika.
userRateLimitExceededUnreg Żądanie nie zostało zrealizowane, ponieważ osiągnięto limit liczby żądań na użytkownika, a deweloper klienta nie został zidentyfikowany w żądaniu. Aby utworzyć projekt swojej aplikacji, użyj Google Developer Console (https://console.developers.google.com).
variableTermExpiredDailyExceeded Żądanie nie zostało zrealizowane, ponieważ wygasł zmienny limit okresowy i osiągnięto limit dzienny.
variableTermLimitExceeded Żądanie nie zostało zrealizowane, ponieważ osiągnięto zmienny limit okresowy.

NOT_FOUND (404) (Nie znaleziono)

Kod błędu Opis
notFound Nie udało się wykonać żądanej operacji, ponieważ nie znaleziono zasobu powiązanego z żądaniem.
notFound Nie znaleziono zasobu powiązanego z żądaniem. Jeśli ten interfejs API nie był używany w ciągu ostatnich dwóch tygodni, wdróż ponownie aplikację App Engine i ponownie wykonaj wywołanie.
unsupportedProtocol Protokół użyty w żądaniu nie jest obsługiwany.

METHOD_NOT_ALLOWED (405) (Metoda niedozwolona)

Kod błędu Opis
httpMethodNotAllowed Metoda HTTP powiązana z żądaniem nie jest obsługiwana.

CONFLICT (409) (Konflikt)

Kod błędu Opis
conflict Nie można zrealizować żądania do interfejsu API, bo żądana operacja spowodowałaby konflikt z istniejącym elementem. Na przykład żądanie próbujące utworzyć duplikat elementu spowodowałoby konflikt, choć zduplikowane elementy są zwykle identyfikowane przez bardziej szczegółowe błędy.
duplicate Nie udało się wykonać żądanej operacji, ponieważ nastąpiła próba utworzenia już istniejącego zasobu.

GONE (410) (Brak)

Kod błędu Opis
deleted Żądanie nie zostało zrealizowane, ponieważ powiązany z nim zasób został usunięty.

PRECONDITION_FAILED (412) (Warunek wstępny nie został spełniony)

Kod błędu Opis
conditionNotMet Warunek określony w nagłówku HTTP If-Match lub If-None-Match nie został spełniony. Szczegółowe informacje zawiera sekcja ETag specyfikacji HTTP. Sprawdź wartość nagłówka żądania HTTP If-Match.

REQUEST_ENTITY_TOO_LARGE (413) (Zbyt duże żądanie)

Kod błędu Opis
backendRequestTooLarge Żądanie jest za duże.
batchSizeTooLarge Żądanie zbiorcze zawiera zbyt wiele elementów.
uploadTooLarge Żądanie nie zostało zrealizowane, ponieważ przesłane w nim dane mają zbyt duży rozmiar.

REQUESTED_RANGE_NOT_SATISFIABLE (416) (Zakres żądania niedostępny)

Kod błędu Opis
requestedRangeNotSatisfiable Żądanie określa zakres, którego nie można spełnić.

EXPECTATION_FAILED (417) (Oczekiwanie nie zostało spełnione)

Kod błędu Opis
expectationFailed Serwer nie może spełnić oczekiwań klienta.

PRECONDITION_REQUIRED (428) (Wymagane spełnienie warunków wstępnych)

Kod błędu Opis
preconditionRequired Żądanie wymaga warunku wstępnego, który nie został podany. Aby to żądanie zostało zrealizowane, należy wraz z nim podać nagłówek If-Match lub If-None-Match.

TOO_MANY_REQUESTS (429) (Zbyt wiele żądań)

Kod błędu Opis
rateLimitExceeded W danym okresie wysłano zbyt wiele żądań.

INTERNAL_SERVER_ERROR (500) (Błąd wewnętrzny serwera)

Kod błędu Opis
internalError Żądanie nie zostało zrealizowane z powodu błędu wewnętrznego.

NOT_IMPLEMENTED (501) (Nie wdrożono)

Kod błędu Opis
notImplemented Żądana operacja nie została zaimplementowana.
unsupportedMethod Żądanie nie zostało zrealizowane, ponieważ próbuje wykonać nieznaną metodę lub operację.

SERVICE_UNAVAILABLE (503) (Usługa niedostępna)

Kod błędu Opis
backendError Wystąpił błąd po stronie backendu.
backendNotConnected Żądanie nie zostało zrealizowane z powodu błędu połączenia.
notReady Serwer interfejsu API nie jest gotowy do przyjmowania żądań.