Reproduction Steps
Links: Not relevant, if there is really a need to it please send me a PM as the place this was found in is not meant to be displayed publicly yet.
System Information: Not relevant, purely an API call that returns odd info
Reproduction: When calling ListKeysAsync (only tested with prefix and scope usage on the datastore). it lists all keys with said prefix however when one of these datas are removed using RemoveAsync it rids of the data but the key will remain present in ListKeysAsync despite it not fetching any data other than versions
Expected Behavior
I expect that ListKeysAsync returns the keys of any present data where the keys of deleted storages are no longer given as they no longer contain any info or somewhat be listed seperately from a list of entirely active data as it’s confusing to have all the currently present keys together with keys that could potentially access previous versions.
Alternatively having a seperate API call or Enum as the parameters for these type of keys works too and might allow for a more structural usage of the key listing api feature.
Actual Behavior
The key of the removed datastore is still present in the list which is extremely confusing and can hardly be identified on if it’s an removed key or not as it just gets marked as a “new data” through GetAsync, etc.
https://gyazo.com/9f7f0a959fc71e6df4dfc4eb63286c8a
Workaround
the only work around i could come up with is identifying the keys with a GUID (what’s shown as .1 and .2 in the example code) and marking said GUID as “removed” under a general storage of said user. Though this could fill up excessively while i really shouldn’t need to store said key.
Issue Area: Engine
Issue Type: Other
Impact: Moderate
Frequency: Constantly
Date First Experienced: 2022-04-01 16:04:00 (+02:00)
Date Last Experienced: 2022-04-01 00:04:00 (+02:00)