Kody błędów i ograniczeń

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Zgłoszenia, które robisz do przechowywania danych, mogą się zakończyć niepowodzeniem ze względu na niską połączenie lub inne problemy. Aby uzyskać dostęp do błędów i powiadomić o błędach z kodem błędu, zapakuj funkcje przechowywania danych w pcall() .

Referencja kodu błędu

Kod błęduNazwa błęduWiadomość o błędzieNotatki
101KeyNameEmptyNazwa klucza nie może zostać pusta.Sprawdź, czy kluczowy wpis do funkcji przechowywania danych jest pusty ciąg.
102KeyNameLimitNazwa klucza przekracza limit 50 znaków.Sprawdź, czy klucz w funkcji przechowywania danych przekracza długość 50.
103ValueNotAllowedNie można pozwolić X w DataStore .Zła funkcja aktualizacji zwróciła wartość typu X.
104CantStoreValueNie można zapisać X w DataStore .Funkcja aktualizacji zwróciła wartość typu X, która nie była seryalizowana.
105ValueTooLargeWartość serjalna przekracza X limit.Jeśli ustawiasz wartość z SetAsync() lub UpdateAsync(), długość serweryzowaną wartość nie może przekroczyć rozmiaru X. Aby sprawdzić długość serweryzowaną wartość, użyj 1> Class.HttpService:JSONEncode()|JSONEncode
106MaxValueInvalidMaxValue musi być liczbą.Jeśli przekazujesz maksymalną wartość do GetSortedAsync() dla OrderedDataStore, to musi to być liczba.
106MinValueInvalidMinValue musi być liczbą.Jeśli przesyłasz minimum wartości do GetSortedAsync() dla OrderedDataStore, musi to być liczba całkowita.
106PageSizeGreaterPageSize musi leżeć w przeddefiniowanym zakresie.Maksymalna wielkość strony dla OrderedDataStore wynosi 1.
106PageSizeLesserPageSize musi leżeć w przeddefiniowanym zakresie.Maksymalna wielkość strony dla OrderedDataStore wynosi 100.
107MinMaxOrderInvalidWartość MaxValue musi być większa lub równa Wartości MinValue .Maksymalna wartość musi być większa lub równa minimalnej wartości dla GetSortedAsync() .
301GetAsyncThrottleGetAsync prośba zatrzymana. Prośba była ograniczona, ale kierunek była pełna. Class.GlobalDataStore:GetAsync()|GetAsync() żądanie przekroczył maksymalny rozmiar kolejki, a Roblox nie jest w stanie przetworzyć żądań w obecnym przepływie
302SetAsyncThrottleSetAsync prośba zatrzymana. Prośba była ograniczona, ale kierunek była pełna. Class.GlobalDataStore:SetAsync()|SetAsync() zapytanie przekroczyło maksymalny rozmiar kolejki i Roblox nie może przetworzyć żądań w obecnym przepływie.
303IncreAsyncThrottleIncrementAsync prośba zatrzymana. Prośba była ograniczona, ale kierunek była pełna. Class.GlobalDataStore:IncrementAsync()|IncrementAsync() zapytanie przekroczyło maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć wniosków w obecnym przepływie.
304UpdateAsyncThrottleUpdateAsync zaprzestano wysyłania prośby. Prośba była ograniczona, ale kierunek była pełna.UpdateAsync() zapytanie przekroczyło maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań w obecnym przepływie.
304TransformThrottleUpdateAsync zaprzestano wysyłania prośby. Prośba była ograniczona, ale kierunek była pełna.UpdateAsync() zapytanie przekroczyło maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań w obecnym przepływie.
305GetSortedThrottleGetSorted zapis wysłany. Request został szybko odrzucony, ale koda była pełna.GetSortedAsync() zapytanie przekroczyło maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć zapytania w obecnym przepływie.
306RemoveAsyncThrottleRemoveAsync prośba zatrzymana. Prośba była ograniczona, ale kierunek była pełna. Class.GlobalDataStore:RemoveAsync()|RemoveAsync() prośba przekroczyła maksymalny rozmiar kolejki i Roblox nie może przetworzyć prośb w obecnym przepływie
401DataModelNoAccessProśba nie powiodła się. DataModel jest niedostępny podczas gdy doświadczenie jest zamykane.DataModel jest niezainicjatyzowany, ponieważ doświadczenie jest zamykane.
402LuaWebSrvsNoAccessProśba nie powiodła się. LuaWebService jest niedostępny podczas gdy doświadczenie jest zamykane.LuaWebService nie jest inicjalizowany, ponieważ doświadczenie jest zamykane.
403StudioAccessToApisNotAllowedNie można zapisać do DataStore z Studio, ponieważ dostęp API nie jest włączony.Dostęp API musi być aktywny, aby używać magazynów danych w Studio.
404InternalErrorOrderedDataStore nie istnieje.Nie znaleziono związanego z tym żądaniem OrderedDataStore . To może być znak uszkodzonego dnia. Spróbuj ponownie później.
501InternalErrorNie można zeskanować odpowiedzi, ponieważ dane mogą być uszkodzone.Nie udało się wyczytać odpowiedzi na twoje prośba. To może być wskaźnik uszkodzenia danych. Spróbuj ponownie później.
502RequestRejectedAPI Services odrzucił prośbę z błędem X.Błąd X nastąpił podczas przetwarzania na serwerach Roblox. Spróbuj ponownie później.
503InternalErrorProśba o przechowywanie danych była powodzeniem, ale klucz nie został znaleziony.Żądany klucz nie został znaleziony w magazynie danych. To może być wskaźnik uszkodzenia danych. Spróbuj ponownie później.
504InternalErrorProśba o przechowywanie danych była powodzeniem, ale odpowiedź nie została poprawnie zaimportowana.Nie udało się wyczytać odpowiedzi na twoje prośba. To może być wskaźnik uszkodzenia danych. Spróbuj ponownie później.
505InternalErrorOrderedDataStore prośba odebrana z sukcesem, ale odpowiedź nie została poprawnie zaimportowana.Nie udało się serwerowi zeskanować odpowiedzi na twój prośbaOrderedDataStore. Być może to wynik uszkodzonej bazy danych. Spróbuj ponownie później.
509OperationNotAllowedOperacje przechowywania danych są zablokowane podczas uruchomienia na osobistym RCC, aby zapobiec ewentualnej uszkodzonej danych.Wpisy w tabelach danych są zapisane na prywatnych kanałach RCC.
511AttributeSizeTooLargeRozmiar atrybutu metadanych przekracza X limit.Rozmiar serwowanego metadanych przekracza limit X. Wartość X jest dynamiczna. Jeśli rozmiar się zmienia, wartość również się zmienia.
512UserIdLimitExceededUserID rozmiar przekracza limit X.Długość zapisu ID użytkownika dostarczonej przez użytkownika przekracza limit X.
513AttributeFormatErrorFormat atrybutu userId jest nieprawidłowe.Dostarczony identyfikator użytkownika nie jest liczbą.
513AttributeFormatErrorFormat metadanych atrybutu jest nieprawidłowe.Metadane nie są tabelą.
GetVersionAsyncThrottleGetVersionAsync prośba została upuszczona. Prośba była ograniczona. Class.DataStore:GetVersionAsync()|GetVersionAsync() zapytanie przekroczył maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć wniosków w obecnym przepływie.
ListDataStoresAsyncThrottleListDataStoresAsync wyszukał prośbę. Prośba została ograniczona.ListDataStoresAsync() wniosek przekroczył maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć wniosków w obecnym przepływie.
ListKeysAsyncThrottleListKeysAsync wysunięto prośbę. Prośba została ograniczona.ListKeysAsync() zapytanie przekroczyło maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć zapytania w tej chwili poprzez przepustnicę.
ListVersionsAsyncThrottleListVersionsAsync zapytanie upuszczone. Request był ograniczony.ListVersionsAsync() zapytanie przekroczyło maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć zapytania w obecnym przepustowym.
RemoveVersionAsyncThrottleRemoveVersionAsync prośba została upuszczona. Prośba została ograniczona. Class.DataStore:RemoveVersionAsync()|RemoveVersionAsync() prośba przekroczyła maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć prośb w obecnym przepływie.

Kody błędów serwera

Nazwa błęduWiadomość o błędzieNotatki
DatastoreThrottledSzybkość wysyłania przekracza maksymalne pozwolone dla datastore .Zbyt wiele wysyłanych żądań było do jednego magazynu danych.
InternalServerErrorWystąpił wewnętrzny błąd serwera.Okazjonalny błąd na serwerach Roblox. Spróbuj ponownie, idealnie z eksponencjalnym odchyleniem.
InvalidPlaceZaproszony przez Ciebie zapis jest nieprawidłowe.Nie znaleziono odpowiedniego identyfikatora wszechświata dla miejsce. Spróbuj ponownie później.
InvalidTargetPodany cel jest nieprawidłowe.Nazwa klucza magazynu danych przekracza limit 50 znaków.
InvalidUniverseDostarczony wszechświat jest nieprawidłowe.Nie znaleziono odpowiedniego identyfikatora miejsca dla wszechświata. Spróbuj ponownie później.
InvalidUserIdsPodane ID użytkowników mają nieprawidłowy format.Nie udało się zeskanować ID użytkownika.
KeyThrottledSzybkość wysyłania przekracza maksymalny limit dla klucza.Wskaźnik prośby przekracza maksymalną wskazaną wskaźnik prośby dla jednego klucza.
KeyNotFoundZapytany klucz nie istnieje.Klucz nie istnieje.
N/ANie ma stron do przesunięcia.Ten błąd następuje, gdy wywołasz Pages:AdvanceToNextPageAsync() na ostatniej stronie.

Ograniczenia

Modele danych mają ograniczenia . Jeśli doświadczenie przekracza te ograniczenia, usługa automatycznie ogranicza użycie magazynu danych doświadczenia i powoduje, że ​​nadchodzące wnioski są umieszczone w jednej z następujących kolejek:

  • Ustawić
  • Zamówiony ustawiać
  • Zdobądź
  • Zamówiony dostęp

Zgłoszenia w kolejce są przetwarzane w kolejności, w jakiej są otrzymywane. Funkcja wezwana nadal zwraca, dopóki jej zgłoszenie nadal jest w kolejce. Jeśli klucz przechowywania danych jest ograniczony, zgłoszenie jest umieszczone w kolejce, ale jest tymczasowo odrzucane.

Każda kolejka ma limit 30 żądań. Gdy limit kolejki zostanie osiągnięty, wszystkie żądania zakończą się błędem kodu w zakresie 301-306, co wskazuje, że wszystkie żądania zostały całkowicie zgubione.

Ograniczenia serwera

Każdy serwer jest dozwolony pewną liczbą prośb o przechowywanie danych w zależności od typu prośby i liczby użytkowników. Użyj GetRequestBudgetForRequestType() , aby potwierdzić liczbę prośb o przechowywanie danych, które może wykonać obecne miejsce.

Typ prośbyFunkcjeZgłaszania na minutę
ZdobądźGetAsync()60 + liczba graczy × 10
Ustaw (ograniczenie jest dzielone między wszystkie wymienione funkcje)SetAsync() Class.GlobalDataStore:IncrementAsync()|IncrementAsync() Class.GlobalDataStore:UpdateAsync()|UpdateAsync() 0> Class.GlobalDataStore:RemoveAsync()|RemoveAsync()0>60 + liczba graczy × 10
Zostań sortowanyGetSortedAsync()5 + numPlayers × 2
Zdobądź wersjęGetVersionAsync()5 + numPlayers × 2
ListaClass.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync()5 + numPlayers × 2
UsuńRemoveVersionAsync()5 + numPlayers × 2

Ograniczenia danych

Limitowanie przechowywanych danych pozwala na użycie tylko określonej ilości danych za wejście.

Nazwa magazynu danych, imię klucza i zakres muszą wszystkie być pod pewną długością znaku. Użyj string.len() aby sprawdzić ich długość.

Wartość klucza jest również przechowywana jako ciąg znaków, niezależnie od jej początkowego wpisywać. Możesz sprawdzić rozmiar danych za pomocą funkcji JSONEncode(), która konwertuje dane Lua w seriałizowaną tabelę JSON.

SkładnikMaksymalna liczba znaków
Nazwa magazynu danych50
Nazwa klucza50
Zakres50
Dane (Wartość klucza)4,194,304 za klucz

Limitowanie metadanych

Ograniczenia liczby znaków w metadanych użytkownika.

SkładnikMaksymalna liczba znaków
Nazwa klucza50
Wartość250
Pary kluczowe300

Ograniczenia przepustowości

Ograniczenia przepustowości kluczowej zapewniają, że wydajność jest optymalna na serwerach Roblox. Każde ograniczenie dotyczy każdego pojedynczego klucza na wszystkich serwerach w doświadczeniu i aktualizuje się wraz z upływem czasu.

Roblox ocenia użycie kwoty związanej z kluczem w ciągu ostatnich 60 sekund. Jeśli użycie, w tym obecna prośba, jest w limicie przepustowości, prośba jest zatwierdzona. Jeśli użycie przekracza limit, prośba jest odrzucona.

Typ prośbyOgraniczenie
Przeczytaj25 MB na minutę
Pisać4 MB na minutę