Permintaan yang Anda buat ke penyimpanan data dapat gagal karena konektivitas buruk atau masalah lainnya.Untuk menangani kesalahan dan mengembalikan pesan dengan kode kesalahan, bungkus fungsi penyimpanan data di pcall() .
Referensi kode kesalahan
Kode kesalahan | Nama kesalahan | Pesan kesalahan | Catatan | |
---|---|---|---|---|
101 | KeyNameEmpty | Nama kunci tidak boleh kosong. | Periksa apakah input kunci ke fungsi penyimpanan data adalah string kosong. | |
102 | KeyNameLimit | Nama kunci melebihi batas karakter 50. | Periksa apakah input kunci ke fungsi penyimpanan data melebihi panjang 50. | |
103 | ValueNotAllowed | Tidak dapat mengizinkan X di DataStore . | Fungsi pembaruan yang buruk mengembalikan nilai tipe X. | |
104 | CantStoreValue | Tidak dapat menyimpan X di DataStore . | Fungsi pembaruan mengembalikan nilai tipe X yang tidak di serialisasi. | |
105 | ValueTooLarge | Nilai seri melebihi batas X. | Jika Anda mengatur nilai dengan SetAsync() atau UpdateAsync() , panjang seri dari nilai tidak boleh melebihi ukuran X .Untuk memeriksa panjang data yang di serialkan, gunakan JSONEncode() . | |
106 | MaxValueInvalid | MaxValue harus menjadi bilangan bulat. | Jika Anda melewati nilai maksimum ke GetSortedAsync() untuk OrderedDataStore , itu harus menjadi bilangan bulat. | |
106 | MinValueInvalid | MinValue harus menjadi bilangan bulat. | Jika Anda melewati nilai minimum ke GetSortedAsync() untuk OrderedDataStore , itu harus menjadi bilangan bulat. | |
106 | PageSizeGreater | PageSize harus berada dalam rentang yang telah ditentukan. | Ukuran halaman minimum untuk OrderedDataStore adalah 1. | |
106 | PageSizeLesser | PageSize harus berada dalam rentang yang telah ditentukan. | Ukuran halaman maksimum untuk OrderedDataStore adalah 100. | |
107 | MinMaxOrderInvalid | MaxValue harus lebih besar atau sama dengan MinValue . | Nilai maksimum harus lebih besar atau sama dengan nilai minimum untuk GetSortedAsync() . | |
301 | GetAsyncThrottle | GetAsync permintaan diturunkan. Permintaan dibatasi tetapi antrian penuh. | GetAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini di output. | |
302 | SetAsyncThrottle | SetAsync permintaan diturunkan. Permintaan dibatasi tetapi antrian penuh. | SetAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini di output. | |
303 | IncreAsyncThrottle | IncrementAsync permintaan diturunkan. Permintaan dibatasi tetapi antrian penuh. | IncrementAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini di output. | |
304 | UpdateAsyncThrottle | UpdateAsync permintaan diturunkan. Permintaan dibatasi tetapi antrian penuh. | UpdateAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini di output. | |
304 | TransformThrottle | UpdateAsync permintaan diturunkan. Permintaan dibatasi tetapi antrian penuh. | UpdateAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini di output. | |
305 | GetSortedThrottle | GetSorted permintaan diturunkan. Permintaan dibatasi tetapi antrian penuh. | GetSortedAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini di output. | |
306 | RemoveAsyncThrottle | RemoveAsync permintaan diturunkan. Permintaan dibatasi tetapi antrian penuh. | RemoveAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan saat ini di output. | |
401 | DataModelNoAccess | Permintaan gagal. DataModel tidak dapat diakses saat pengalaman dimatikan. | DataModel tidak diinisialisasi karena pengalaman sedang dimatikan. | |
402 | LuaWebSrvsNoAccess | Permintaan gagal. LuaWebService tidak dapat diakses saat pengalaman dimatikan. | LuaWebService tidak diinisialisasi karena pengalaman sedang dimatikan. | |
403 | StudioAccessToApisNotAllowed | Tidak dapat menulis ke DataStore dari Studio karena akses API tidak diaktifkan. | Akses API harus aktif untuk menggunakan Data Store di Studio. | |
404 | InternalError | OrderedDataStore tidak ada. | The OrderedDataStore yang terkait dengan permintaan ini tidak ditemukan. Ini mungkin merupakan tanda korupsi data. Coba lagi nanti. | |
501 | InternalError | Tidak dapat menguraikan respons karena data mungkin rusak. | Server tidak dapat memproses respons untuk permintaan Anda. Ini mungkin merupakan tanda korupsi data. Coba lagi nanti. | |
502 | RequestRejected | Layanan API menolak permintaan dengan kesalahan X. | Kesalahan X terjadi saat diproses di server Roblox. Coba lagi nanti. | |
503 | InternalError | Permintaan penyimpanan data berhasil tetapi kunci tidak ditemukan. | Kunci yang diminta tidak ditemukan di Toko Data. Ini mungkin merupakan tanda korupsi data. Coba lagi nanti. | |
504 | InternalError | Permintaan Penyimpanan Data berhasil tetapi respons tidak diformat dengan benar. | Server tidak dapat memproses respons untuk permintaan Anda. Ini mungkin merupakan tanda korupsi data. Coba lagi nanti. | |
505 | InternalError | permintaan OrderedDataStore berhasil tetapi respons tidak diformat dengan benar. | Server tidak dapat memproses respons untuk permintaan OrderedDataStore Anda. Ini mungkin merupakan tanda korupsi data. Coba lagi nanti. | |
509 | OperationNotAllowed | Operasi Penyimpanan Data diblokir saat dijalankan di RCC Pribadi untuk mencegah kemungkinan korupsi data. | Penulisan Toko Data diblokir di saluran RCC pribadi. | |
511 | AttributeSizeTooLarge | Ukuran atribut metadata melebihi batas X. | Ukuran metadata yang diserial melebihi batas X. Nilai X adalah dinamis. Jika ukuran berubah, nilai juga berubah. | |
512 | UserIdLimitExceeded | UserID ukuran melebihi batas X. | Panjang array ID pengguna yang disediakan oleh pengguna melebihi batas X. | |
513 | AttributeFormatError | Format atribut userId tidak valid. | ID pengguna yang disediakan bukan angka. | |
513 | AttributeFormatError | Format metadata atribut tidak valid. | metadata bukan meja. | |
GetVersionAsyncThrottle | GetVersionAsync permintaan dijatuhkan.Permintaan tertahan.: | GetVersionAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan pada kapasitas saat ini. | ||
GetVersionAtTimeAsyncThrottle | GetVersionAtTimeAsync permintaan dijatuhkan.Permintaan tertahan.: | GetVersionAtTimeAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan pada kapasitas saat ini. | ||
ListDataStoresAsyncThrottle | ListDataStoresAsync permintaan dijatuhkan.Permintaan tertahan.: | ListDataStoresAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan pada kapasitas saat ini. | ||
ListKeysAsyncThrottle | ListKeysAsync permintaan dijatuhkan.Permintaan tertahan.: | ListKeysAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan pada kapasitas saat ini. | ||
ListVersionsAsyncThrottle | ListVersionsAsync permintaan dijatuhkan.Permintaan tertahan.: | ListVersionsAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan pada kapasitas saat ini. | ||
RemoveVersionAsyncThrottle | RemoveVersionAsync permintaan dijatuhkan.Permintaan tertahan.: | RemoveVersionAsync() permintaan telah melebihi ukuran antrian maksimum dan Roblox tidak dapat memproses permintaan pada kapasitas saat ini. | ||
InvalidTimestamp | Waktu戳 harus positif dan tidak lebih dari sepuluh menit di masa depan.: | Stempel waktu yang disediakan ke GetVersionAtTimeAsync() tidak valid. |
Kode kesalahan server
Nama kesalahan | Pesan kesalahan | Catatan |
---|---|---|
DatastoreThrottled | Tingkat permintaan melebihi batas maksimum yang diizinkan untuk datastore. | Terlalu banyak permintaan dikirim ke satu penyimpanan data. |
InternalServerError | Terjadi kesalahan server internal. | Kesalahan sesekali di server Roblox. Coba lagi, idealnya dengan penundaan eksponensial. |
InvalidPlace | Tempat yang disediakan tidak valid. | Tidak ada ID Alam yang cocok untuk tempat itu. Coba lagi nanti. |
InvalidTarget | Target yang disediakan tidak valid. | Nama kunci Toko Data Tertata diperintah melebihi batas karakter 50. |
InvalidUniverse | Alam semesta yang disediakan tidak valid. | Tidak ada ID Tempat yang cocok untuk alam semesta. Coba lagi nanti. |
InvalidUserIds | ID pengguna yang disediakan memiliki format yang tidak valid. | Gagal memparserkan ID pengguna. |
KeyThrottled | Tingkat permintaan melebihi batas maksimum yang diizinkan untuk kunci. | Tingkat permintaan melebihi tingkat permintaan maksimum yang diizinkan untuk satu kunci. |
KeyNotFound | Kunci yang diminta tidak ada. | Kunci tidak ada. |
N/A | Tidak ada halaman untuk maju ke. | Kesalahan ini terjadi saat Anda memanggil Pages:AdvanceToNextPageAsync() di halaman terakhir. |
Batasan
Model data memiliki batas .Jika pengalaman melebihi batas ini, layanan secara otomatis membatasi penggunaan penyimpanan data pengalaman dan menyebabkan permintaan masa depan ditempatkan di salah satu antrian berikut:
- Mengatur
- Set diurutkan
- Dapatkan
- Dipesan mendapat
Permintaan di antrian ditangani dalam urutan yang diterimanya.Fungsi yang dipanggil terus menghasilkan selama permintaannya masih dalam antrian.Jika kunci penyimpanan data itu sendiri dibatasi, permintaan ditempatkan di antrian tetapi diabaikan sementara.
Setiap antrian memiliki batas 30 permintaan.Ketika batas antrian tercapai, permintaan gagal dengan kode kesalahan di rentang 301-306, menunjukkan bahwa permintaan telah ditinggalkan sepenuhnya.
Batas server
Setiap server diizinkan untuk meminta penyimpanan data tertentu jumlah permintaan berdasarkan jenis permintaan dan jumlah pengguna.Gunakan GetRequestBudgetForRequestType() untuk mengkonfirmasi jumlah permintaan penyimpanan data yang dapat dilakukan tempat saat ini.
Untuk setiap jenis permintaan, batas dibagikan di antara semua fungsi yang terdaftar.
Jenis permintaan | Fungsi | Permintaan per menit |
---|---|---|
Dapatkan | GetAsync() | 60 + pemain num × 10 |
Mengatur | Class.GlobalDataStore:SetAsync()|SetAsync()``Class.GlobalDataStore:IncrementAsync()|IncrementAsync()``Class.GlobalDataStore:UpdateAsync()|UpdateAsync()``Class.GlobalDataStore:RemoveAsync()|RemoveAsync() | 60 + pemain num × 10 |
Dapatkan Diurutkan | GetSortedAsync() | 5 + pemain num × 2 |
Dapatkan Versi | Class.DataStore:GetVersionAsync()|GetVersionAsync()``Class.DataStore:GetVersionAtTimeAsync()|GetVersionAtTimeAsync() | 5 + pemain num × 2 |
Daftar | Class.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync() | 5 + pemain num × 2 |
Menghapus | RemoveVersionAsync() | 5 + pemain num × 2 |
Data batasan
Penyimpanan data membatasi berapa banyak data yang dapat digunakan per entri.
Nama penyimpanan data, nama kunci, dan scope semuanya harus berada di bawah panjang karakter tertentu. Gunakan string.len() untuk memeriksa panjangnya.
Data (nilai kunci) juga disimpan sebagai string, terlepas dari jenis awalnya.Anda dapat memeriksa ukuran data dengan fungsi JSONEncode(), yang mengubah data Luau menjadi tabel JSON berbalok.
Komposit | Jumlah karakter maksimum |
---|---|
Nama toko data | 50 |
Nama kunci | 50 |
Skop | 50 |
Data (nilai kunci) | 4,194,304 untuk setiap kunci |
Batas metadata
Batasan terhadap jumlah karakter dalam metadata yang didefinisikan pengguna.
Komposit | Jumlah karakter maksimum |
---|---|
Nama kunci | 50 |
Nilainya | 250 |
Pasangan nilai kunci | 300 |
Batas keluaran
Batas pemrosesan per kunci memastikan bahwa kinerja optimal di server Roblox.Setiap batas berlaku untuk setiap kunci tunggal di semua server dalam pengalaman dan menyegarkan seiring waktu.
Roblox memeriksa penggunaan kuota yang terkait dengan kunci selama 60 detik terakhir.Jika penggunaan, termasuk permintaan saat ini, berada dalam batas kapasitas, permintaan disetujui.Jika penggunaan melebihi batas, permintaan ditolak.
Jenis permintaan | Membatasi |
---|---|
Membaca | 25 MB per menit |
Menulis | 4 MB per menit |
Batas penyimpanan
Saat ini, tidak ada batas penyimpanan yang diterapkan pada penyimpanan data.