Kody błędów i limity

*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.

Prośby, które składasz do magazynów danych, mogą zawieść z powodu słabej łączności lub innych problemów.Aby obsłużyć błędy i zwrócić wiadomości z kodem błędu, owiń funkcje przechowywania danych w pcall().

Referencja kodu błędu

Kod błęduNazwa błęduKomunikat o błędzieNotatki
101KeyNameEmptyNazwa klucza nie może być pusta.Sprawdź, czy wejście klucza do funkcji przechowywania danych jest pustą struną.
102KeyNameLimitNazwa klucza przekracza limit 50 znaków.Sprawdź, czy wpisanie klucza do funkcji przechowywania danych przekracza długość 50.
103ValueNotAllowedNie można zezwolić X w DataStore.Zła funkcja aktualizacji zwróciła wartość typu X.
104CantStoreValueNie można przechować X w DataStore.Funkcja aktualizacji zwróciła wartość typu X, która nie została zaserwowana.
105ValueTooLargeWartość zaserializowana przekracza X limit.Jeśli ustawiasz wartość za pomocą SetAsync() lub UpdateAsync(), długość zaserwowana wartości nie może przekroczyć rozmiaru X.Aby sprawdzić długość zaserwowanych danych, użyj JSONEncode().
106MaxValueInvalidMaxValue musi być liczbą całkowitą.Jeśli przekazujesz maksymalną wartość do GetSortedAsync() dla OrderedDataStore , musi to być liczba całkowita.
106MinValueInvalidMinValue musi być liczbą całkowitą.Jeśli przekazujesz minimalną wartość do GetSortedAsync() dla OrderedDataStore , musi to być liczba całkowita.
106PageSizeGreaterPageSize musi znajdować się w określonym przedziale.Maksymalna wielkość strony dla OrderedDataStore jest 1.
106PageSizeLesserPageSize musi znajdować się w określonym przedziale.Maksymalny rozmiar strony dla OrderedDataStore jest 100.
107MinMaxOrderInvalidMaxValue musi być większy niż lub równy MinValue .Maksymalna wartość musi być większa lub równa minimalnej wartości dla GetSortedAsync() .
301GetAsyncThrottleGetAsync prośba została odrzucona. Prośba została ograniczona, ale kolejka była pełna.GetAsync() prośba przekroczyła maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
302SetAsyncThrottleSetAsync prośba została odrzucona. Prośba została ograniczona, ale kolejka była pełna.SetAsync() prośba przekroczyła maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
303IncreAsyncThrottleIncrementAsync prośba została odrzucona. Prośba została ograniczona, ale kolejka była pełna.IncrementAsync() prośba przekroczyła maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
304UpdateAsyncThrottleUpdateAsync prośba została odrzucona. Prośba została ograniczona, ale kolejka była pełna.UpdateAsync() prośba przekroczyła maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
304TransformThrottleUpdateAsync prośba została odrzucona. Prośba została ograniczona, ale kolejka była pełna.UpdateAsync() prośba przekroczyła maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
305GetSortedThrottleGetSorted prośba została odrzucona. Prośba została ograniczona, ale kolejka była pełna.GetSortedAsync() prośba przekroczyła maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
306RemoveAsyncThrottleRemoveAsync prośba została odrzucona. Prośba została ograniczona, ale kolejka była pełna.RemoveAsync() prośba przekroczyła maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
401DataModelNoAccessProśba nie powiodła się. DataModel jest niedostępna, gdy doświadczenie jest wyłączane.DataModel jest niezainicjowany, ponieważ doświadczenie się zamyka.
402LuaWebSrvsNoAccessProśba nie powiodła się. LuaWebService jest niedostępna, gdy doświadczenie jest wyłączane.LuaWebService jest niezainicjowany, ponieważ doświadczenie się zamyka.
403StudioAccessToApisNotAllowedNie można pisać do DataStore z Studio, ponieważ dostęp do API nie jest włączony.Dostęp do API musi być aktywny, aby korzystać z Data Store w Studio.
404InternalErrorOrderedDataStore nie istnieje.Nie znaleziono OrderedDataStore związanych z tym żądaniem. Może to być oznaka korupcji danych. Spróbuj ponownie później.
501InternalErrorNie można przetworzyć odpowiedzi, ponieważ dane mogą być uszkodzone.Serwer nie był w stanie przetworzyć odpowiedzi na twoje zapytanie. Może to być oznaka korupcji danych. Spróbuj ponownie później.
502RequestRejectedUsługi API odrzuciły żądanie z błędem X.Wystąpił błąd X podczas przetwarzania na serwerach Roblox. Spróbuj ponownie później.
503InternalErrorWniosek o przechowywanie danych powiódł się, ale klucz nie został znaleziony.Nie znaleziono klucza żądanego w sklepie danych. Może to być znak korupcji danych. Spróbuj ponownie później.
504InternalErrorŻądanie przechowywania danych powiodło się pomyślnie, ale odpowiedź nie została prawidłowo sformatowana.Serwer nie był w stanie przetworzyć odpowiedzi na twoje zapytanie. Może to być oznaka korupcji danych. Spróbuj ponownie później.
505InternalErrorOrderedDataStore prośba o sukces, ale odpowiedź nie została prawidłowo sformatowana.Serwer nie był w stanie przetworzyć odpowiedzi na żądanie OrderedDataStore . Może to być znak korupcji danych. Spróbuj ponownie później.
509OperationNotAllowedOperacje przechowywania danych są blokowane podczas uruchamiania na osobistym RCC, aby zapobiec możliwej korupcji danych.Pisy sklepu danych są blokowane na prywatnych kanałach RCC.
511AttributeSizeTooLargeRozmiar atrybutu metadanych przekracza X limit.Rozmiar znormalizowanych metadanych przekracza limit X. Wartość X jest dynamiczna. Jeśli rozmiar się zmieni, wartość również się zmieni.
512UserIdLimitExceededUserID rozmiar przekracza X limit.Długość tablicy ID użytkownika dostarczonej przez użytkownika przekracza limit X.
513AttributeFormatErrorFormat atrybutu userId jest nieprawidłowy.Podany identyfikator użytkownika nie jest liczbą.
513AttributeFormatErrorFormat metadanych atrybutów jest nieprawidłowy.Metadane nie są tablicą.
GetVersionAsyncThrottleGetVersionAsync prośba upuszczona.Żądanie zostało ograniczone.:GetVersionAsync() wniosek przekroczył maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
GetVersionAtTimeAsyncThrottleGetVersionAtTimeAsync prośba upuszczona.Żądanie zostało ograniczone.:GetVersionAtTimeAsync() wniosek przekroczył maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
ListDataStoresAsyncThrottleListDataStoresAsync prośba upuszczona.Żądanie zostało ograniczone.:ListDataStoresAsync() wniosek przekroczył maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
ListKeysAsyncThrottleListKeysAsync prośba upuszczona.Żądanie zostało ograniczone.:ListKeysAsync() wniosek przekroczył maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
ListVersionsAsyncThrottleListVersionsAsync prośba upuszczona.Żądanie zostało ograniczone.:ListVersionsAsync() wniosek przekroczył maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
RemoveVersionAsyncThrottleRemoveVersionAsync prośba upuszczona.Żądanie zostało ograniczone.:RemoveVersionAsync() wniosek przekroczył maksymalny rozmiar kolejki i Roblox nie jest w stanie przetworzyć żądań przy obecnym przepustowości.
InvalidTimestampDatum musi być pozytywne i nie więcej niż dziesięć minut w przyszłości.:Datum czasu przekazane do GetVersionAtTimeAsync() nie było ważne.

Kody błędów serwera

Nazwa błęduKomunikat o błędzieNotatki
DatastoreThrottledSzybkość żądań przekracza maksymalną dozwoloną dla datastore.Zbyt wiele żądań zostało wysłane do pojedynczego magazynu danych.
InternalServerErrorWystąpił błąd wewnętrznego serwera.Okazjonalny błąd na serwerach Roblox. Spróbuj ponownie, idealnie z wykładniczym odrzuceniem.
InvalidPlacePodany miejsce jest nieprawidłowe.Nie ma pasującego ID wszechświata dla miejsca. Spróbuj ponownie później.
InvalidTargetPodany cel jest nieważny.Nazwa klucza sklepu danych złożonego przekracza ograniczenie do 50 znaków.
InvalidUniverseDostarczony wszechświat jest nieważny.Nie ma pasującej identyfikacji miejsca dla wszechświata. Spróbuj ponownie później.
InvalidUserIdsPodane ID użytkownika mają nieważny format.Nie udało się przetworzyć identyfikatorów użytkownika.
KeyThrottledSzybkość żądań przekracza maksymalną dozwoloną dla klucza.Szybkość żądań przekracza maksymalną dozwoloną szybkość żądań dla pojedynczego klucza.
KeyNotFoundŻądany klucz nie istnieje.Klucz nie istnieje.
N/ANie ma stron do przesunięcia do przodu.Ten błąd występuje, gdy na ostatniej stronie wywołasz Pages:AdvanceToNextPageAsync() .

Greny

Modele danych mają ograniczenia .Jeśli doświadczenie przekracza te limity, usługa automatycznie ogranicza użycie przechowywania danych doświadczenia i powoduje, że przyszłe żądania zostaną umieszczone w jednej z następujących kolejek:

  • Ustaw
  • Zamówiono zestaw
  • Otrzymaj
  • Zamówiono otrzymanie

Żądania w kolejce są obsługiwane w kolejności, w jakiej są otrzymywane.Wezwana funkcja nadal przynosi wyniki tak długo, jak jej żądanie jest nadal w kolejce.Jeśli klucz magazynu danych jest ograniczony, wniosek jest umieszczany w kolejce, ale tymczasowo pomijany.

Każda kolejka ma limit 30 żądań.Gdy osiągnięto limit kolejki, żądania zawodzą z kodem błędu w przedziale 301-306, co oznacza, że żądania zostały całkowicie odrzucone.

Ograniczenia serwera

Każdy serwer może otrzymać pewną liczbę żądań przechowywania danych w oparciu o typ żądania i liczbę użytkowników.Użyj GetRequestBudgetForRequestType(), aby potwierdzić liczbę żądań przechowywania danych, które obecne miejsce może wykonać.

Dla każdego typu żądania limit jest dzielony między wszystkie wymienione funkcje.

Typ żądaniaFunkcjeŻądania na minutę
OtrzymajGetAsync()60 + numPlayers × 10
UstawClass.GlobalDataStore:SetAsync()|SetAsync()``Class.GlobalDataStore:IncrementAsync()|IncrementAsync()``Class.GlobalDataStore:UpdateAsync()|UpdateAsync()``Class.GlobalDataStore:RemoveAsync()|RemoveAsync()60 + numPlayers × 10
Zostań sortowanyGetSortedAsync()5 + numer graczy × 2
Zdobądź wersjęClass.DataStore:GetVersionAsync()|GetVersionAsync()``Class.DataStore:GetVersionAtTimeAsync()|GetVersionAtTimeAsync()5 + numer graczy × 2
ListaClass.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync()5 + numer graczy × 2
UsuńRemoveVersionAsync()5 + numer graczy × 2

Ograniczenia danych

Magazyny danych ograniczają, ile danych można użyć na każdą pozycję.

Nazwa magazynu danych, nazwa klucza i zakres muszą wszystkie być w ramach pewnej długości znaków. Użyj string.len(), aby sprawdzić ich długość.

Dane (wartość klucza) są również przechowywane jako ciąg, niezależnie od ich początkowego typu.Możesz sprawdzić rozmiar danych za pomocą funkcji JSONEncode(), która konwertuje dane Luau na znormalizowany JSONowy stół.

SkładnikMaksymalna liczba znaków
Nazwa przechowywania danych50
Nazwa klucza50
Zakres50
Dane (wartość klucza)4,194,304 na klucz

Ograniczenia metadataów

Ograniczenia dotyczące liczby znaków w metadanych zdefiniowanych przez użytkownika.

SkładnikMaksymalna liczba znaków
Nazwa klucza50
Wartość250
Pary klucz-wartość300

Ograniczenia wydajności

Ograniczenia przepustowości na klucz zapewniają, że wydajność jest optymalna na serwerach Roblox.Każdy limit dotyczy każdego klucza na wszystkich serwerach w doświadczeniu i odświeża się z czasem.

Roblox analizuje użycie kwoty związanej z kluczem w ciągu ostatnich 60 sekund.Jeśli użycie, w tym bieżące żądanie, jest w granicach limitu przepustowości, żądanie jest zatwierdzone.Jeśli zużycie przekracza limit, wniosek jest odrzucony.

Typ żądaniaOgranicz
Przeczytaj25 MB na minutę
Napisz4 MB na minutę

Ograniczenia przechowywania

Obecnie nie ma wymuszonych ograniczeń dotyczących przechowywania danych w magazynach danych.