Skip to content

fix: wait for data cleanup before attempting load#678

Merged
Quenty merged 3 commits intomainfrom
users/klga/datastore-fix
Apr 15, 2026
Merged

fix: wait for data cleanup before attempting load#678
Quenty merged 3 commits intomainfrom
users/klga/datastore-fix

Conversation

@klga
Copy link
Copy Markdown
Collaborator

@klga klga commented Apr 1, 2026

edits PlayerDataStoreService.PromiseDataStore to use new method PlayerDataStoreManager.PromiseDataStore instead of GetDataStore.

new method PlayerDataStoreManager.PromiseDataStore will resolve with the datastore object. if previous session data is still cleaning up or saving, it will wait for this to complete before fetching the datastore instead of returning nil

📦 Published PR as canary version: Canary Versions

✨ Test out this PR locally via:

npm install @quenty/actionmanager@13.32.0-canary.678.24427877603.0
npm install @quenty/adorneeboundingbox@8.36.0-canary.678.24427877603.0
npm install @quenty/adorneedata@7.33.0-canary.678.24427877603.0
npm install @quenty/adorneevalue@10.35.0-canary.678.24427877603.0
npm install @quenty/aggregator@1.15.0-canary.678.24427877603.0
npm install @quenty/animationprovider@11.35.0-canary.678.24427877603.0
npm install @quenty/animations@8.31.0-canary.678.24427877603.0
npm install @quenty/assetserviceutils@5.31.0-canary.678.24427877603.0
npm install @quenty/attributeutils@14.29.0-canary.678.24427877603.0
npm install @quenty/avatareditorutils@7.37.0-canary.678.24427877603.0
npm install @quenty/badgeutils@10.18.0-canary.678.24427877603.0
npm install @quenty/basicpane@13.30.0-canary.678.24427877603.0
npm install @quenty/binder@14.34.0-canary.678.24427877603.0
npm install @quenty/bindtocloseservice@8.30.0-canary.678.24427877603.0
npm install @quenty/blend@12.34.0-canary.678.24427877603.0
npm install @quenty/bodycolorsutils@7.34.0-canary.678.24427877603.0
npm install @quenty/boundlinkutils@14.35.0-canary.678.24427877603.0
npm install @quenty/brio@14.29.0-canary.678.24427877603.0
npm install @quenty/buttondragmodel@1.29.0-canary.678.24427877603.0
npm install @quenty/buttonhighlightmodel@14.34.0-canary.678.24427877603.0
npm install @quenty/camera@14.38.0-canary.678.24427877603.0
npm install @quenty/camerastoryutils@10.19.0-canary.678.24427877603.0
npm install @quenty/canceltoken@11.19.0-canary.678.24427877603.0
npm install @quenty/characterutils@12.31.0-canary.678.24427877603.0
npm install @quenty/chatproviderservice@9.47.0-canary.678.24427877603.0
npm install @quenty/clienttranslator@14.35.0-canary.678.24427877603.0
npm install @quenty/clipcharacters@12.37.0-canary.678.24427877603.0
npm install @quenty/cmdrservice@13.41.0-canary.678.24427877603.0
npm install @quenty/collectionserviceutils@8.30.0-canary.678.24427877603.0
npm install @quenty/color3utils@11.34.0-canary.678.24427877603.0
npm install @quenty/colorpalette@10.37.0-canary.678.24427877603.0
npm install @quenty/colorpicker@10.35.0-canary.678.24427877603.0
npm install @quenty/conditions@10.38.0-canary.678.24427877603.0
npm install @quenty/contentproviderutils@12.30.0-canary.678.24427877603.0
npm install @quenty/cooldown@11.36.0-canary.678.24427877603.0
npm install @quenty/coreguienabler@12.32.0-canary.678.24427877603.0
npm install @quenty/coreguiutils@10.18.0-canary.678.24427877603.0
npm install @quenty/counter@7.30.0-canary.678.24427877603.0
npm install @quenty/datastore@13.36.0-canary.678.24427877603.0
npm install @quenty/deathreport@10.41.0-canary.678.24427877603.0
npm install @quenty/depthoffield@11.36.0-canary.678.24427877603.0
npm install @quenty/elo@7.35.0-canary.678.24427877603.0
npm install @quenty/enabledmixin@11.25.0-canary.678.24427877603.0
npm install @quenty/equippedtracker@13.32.0-canary.678.24427877603.0
npm install @quenty/firstpersoncharactertransparency@14.32.0-canary.678.24427877603.0
npm install @quenty/flipbook@9.30.0-canary.678.24427877603.0
npm install @quenty/friendutils@12.29.0-canary.678.24427877603.0
npm install @quenty/funnels@1.22.0-canary.678.24427877603.0
npm install @quenty/gameconfig@12.45.0-canary.678.24427877603.0
npm install @quenty/gameproductservice@14.47.0-canary.678.24427877603.0
npm install @quenty/gamescalingutils@13.34.0-canary.678.24427877603.0
npm install @quenty/genericscreenguiprovider@13.37.0-canary.678.24427877603.0
npm install @quenty/grouputils@10.18.0-canary.678.24427877603.0
npm install @quenty/guivisiblemanager@12.22.0-canary.678.24427877603.0
npm install @quenty/hide@11.36.0-canary.678.24427877603.0
npm install @quenty/highlight@10.38.0-canary.678.24427877603.0
npm install @quenty/hintscoringutils@14.39.0-canary.678.24427877603.0
npm install @quenty/httppromise@10.18.0-canary.678.24427877603.0
npm install @quenty/humanoiddescriptionutils@10.18.0-canary.678.24427877603.0
npm install @quenty/humanoidspeed@12.45.0-canary.678.24427877603.0
npm install @quenty/humanoidtracker@13.30.0-canary.678.24427877603.0
npm install @quenty/humanoidutils@2.12.0-canary.678.24427877603.0
npm install @quenty/idleservice@13.47.0-canary.678.24427877603.0
npm install @quenty/ik@15.48.0-canary.678.24427877603.0
npm install @quenty/influxdbclient@7.33.0-canary.678.24427877603.0
npm install @quenty/inputkeymaputils@14.41.0-canary.678.24427877603.0
npm install @quenty/inputmode@13.32.0-canary.678.24427877603.0
npm install @quenty/inputobjectutils@4.29.0-canary.678.24427877603.0
npm install @quenty/insertserviceutils@10.18.0-canary.678.24427877603.0
npm install @quenty/instanceutils@13.29.0-canary.678.24427877603.0
npm install @quenty/jsonutils@10.18.0-canary.678.24427877603.0
npm install @quenty/linkutils@13.29.0-canary.678.24427877603.0
npm install @quenty/lipsum@14.34.0-canary.678.24427877603.0
npm install @quenty/localizedtextutils@12.29.0-canary.678.24427877603.0
npm install @quenty/marketplaceutils@11.19.0-canary.678.24427877603.0
npm install @quenty/memorystoreutils@6.18.0-canary.678.24427877603.0
npm install @quenty/messagingserviceutils@7.20.0-canary.678.24427877603.0
npm install @quenty/modeltransparencyeffect@11.15.0-canary.678.24427877603.0
npm install @quenty/motor6d@7.40.0-canary.678.24427877603.0
npm install @quenty/mouseshiftlockservice@11.18.0-canary.678.24427877603.0
npm install @quenty/multipleclickutils@13.28.0-canary.678.24427877603.0
npm install @quenty/observablecollection@12.36.0-canary.678.24427877603.0
npm install @quenty/pagesutils@5.19.0-canary.678.24427877603.0
npm install @quenty/particleengine@13.31.0-canary.678.24427877603.0
npm install @quenty/parttouchingcalculator@14.38.0-canary.678.24427877603.0
npm install @quenty/pathfindingutils@10.19.0-canary.678.24427877603.0
npm install @quenty/permissionprovider@14.35.0-canary.678.24427877603.0
npm install @quenty/physicsutils@8.28.0-canary.678.24427877603.0
npm install @quenty/playerbinder@14.34.0-canary.678.24427877603.0
npm install @quenty/playerhumanoidbinder@14.35.0-canary.678.24427877603.0
npm install @quenty/playerinputmode@9.36.0-canary.678.24427877603.0
npm install @quenty/playersservicepromises@10.18.0-canary.678.24427877603.0
npm install @quenty/playerthumbnailutils@10.18.0-canary.678.24427877603.0
npm install @quenty/playerutils@8.31.0-canary.678.24427877603.0
npm install @quenty/policyserviceutils@6.18.0-canary.678.24427877603.0
npm install @quenty/promise@10.18.0-canary.678.24427877603.0
npm install @quenty/promisemaid@5.18.0-canary.678.24427877603.0
npm install @quenty/promptqueue@1.35.0-canary.678.24427877603.0
npm install @quenty/propertyvalue@7.29.0-canary.678.24427877603.0
npm install @quenty/qframe@10.20.0-canary.678.24427877603.0
npm install @quenty/r15utils@13.30.0-canary.678.24427877603.0
npm install @quenty/racketingropeconstraint@12.40.0-canary.678.24427877603.0
npm install @quenty/radial-image@9.35.0-canary.678.24427877603.0
npm install @quenty/ragdoll@15.47.0-canary.678.24427877603.0
npm install @quenty/receiptprocessing@7.32.0-canary.678.24427877603.0
npm install @quenty/remotefunctionutils@10.18.0-canary.678.24427877603.0
npm install @quenty/remoting@12.31.0-canary.678.24427877603.0
npm install @quenty/resetservice@11.35.0-canary.678.24427877603.0
npm install @quenty/rigbuilderutils@10.32.0-canary.678.24427877603.0
npm install @quenty/roblox-api-dump@8.20.0-canary.678.24427877603.0
npm install @quenty/rogue-humanoid@10.45.0-canary.678.24427877603.0
npm install @quenty/rogue-properties@11.43.0-canary.678.24427877603.0
npm install @quenty/rx@13.28.0-canary.678.24427877603.0
npm install @quenty/rxbinderutils@14.34.0-canary.678.24427877603.0
npm install @quenty/rxsignal@7.28.0-canary.678.24427877603.0
npm install @quenty/scoredactionservice@16.42.0-canary.678.24427877603.0
npm install @quenty/screenshothudservice@7.32.0-canary.678.24427877603.0
npm install @quenty/seatutils@7.33.0-canary.678.24427877603.0
npm install @quenty/secrets@7.45.0-canary.678.24427877603.0
npm install @quenty/selectionutils@8.30.0-canary.678.24427877603.0
npm install @quenty/settings@11.48.0-canary.678.24427877603.0
npm install @quenty/settings-inputkeymap@10.51.0-canary.678.24427877603.0
npm install @quenty/snackbar@11.39.0-canary.678.24427877603.0
npm install @quenty/socialserviceutils@10.18.0-canary.678.24427877603.0
npm install @quenty/softshutdown@9.44.0-canary.678.24427877603.0
npm install @quenty/soundgroup@1.38.0-canary.678.24427877603.0
npm install @quenty/soundplayer@7.37.0-canary.678.24427877603.0
npm install @quenty/sounds@10.21.0-canary.678.24427877603.0
npm install @quenty/spawning@10.43.0-canary.678.24427877603.0
npm install @quenty/sprites@13.28.0-canary.678.24427877603.0
npm install @quenty/statestack@14.31.0-canary.678.24427877603.0
npm install @quenty/streamingutils@10.18.0-canary.678.24427877603.0
npm install @quenty/teamtracker@13.30.0-canary.678.24427877603.0
npm install @quenty/teamutils@10.30.0-canary.678.24427877603.0
npm install @quenty/teleportserviceutils@9.30.0-canary.678.24427877603.0
npm install @quenty/templateprovider@11.35.0-canary.678.24427877603.0
npm install @quenty/textboxutils@7.28.0-canary.678.24427877603.0
npm install @quenty/textfilterservice@13.31.0-canary.678.24427877603.0
npm install @quenty/textfilterutils@10.18.0-canary.678.24427877603.0
npm install @quenty/textserviceutils@13.34.0-canary.678.24427877603.0
npm install @quenty/tie@10.38.0-canary.678.24427877603.0
npm install @quenty/timedtween@7.34.0-canary.678.24427877603.0
npm install @quenty/timesyncservice@13.32.0-canary.678.24427877603.0
npm install @quenty/toolutils@1.15.0-canary.678.24427877603.0
npm install @quenty/transitionmodel@7.36.0-canary.678.24427877603.0
npm install @quenty/ugcsanitize@1.16.0-canary.678.24427877603.0
npm install @quenty/uiobjectutils@6.28.0-canary.678.24427877603.0
npm install @quenty/undostack@7.30.0-canary.678.24427877603.0
npm install @quenty/userserviceutils@9.30.0-canary.678.24427877603.0
npm install @quenty/valuebaseutils@13.29.0-canary.678.24427877603.0
npm install @quenty/valueobject@13.30.0-canary.678.24427877603.0
npm install @quenty/viewport@11.39.0-canary.678.24427877603.0
npm install @quenty/voicechat@5.18.0-canary.678.24427877603.0
# or 
yarn add @quenty/actionmanager@13.32.0-canary.678.24427877603.0
yarn add @quenty/adorneeboundingbox@8.36.0-canary.678.24427877603.0
yarn add @quenty/adorneedata@7.33.0-canary.678.24427877603.0
yarn add @quenty/adorneevalue@10.35.0-canary.678.24427877603.0
yarn add @quenty/aggregator@1.15.0-canary.678.24427877603.0
yarn add @quenty/animationprovider@11.35.0-canary.678.24427877603.0
yarn add @quenty/animations@8.31.0-canary.678.24427877603.0
yarn add @quenty/assetserviceutils@5.31.0-canary.678.24427877603.0
yarn add @quenty/attributeutils@14.29.0-canary.678.24427877603.0
yarn add @quenty/avatareditorutils@7.37.0-canary.678.24427877603.0
yarn add @quenty/badgeutils@10.18.0-canary.678.24427877603.0
yarn add @quenty/basicpane@13.30.0-canary.678.24427877603.0
yarn add @quenty/binder@14.34.0-canary.678.24427877603.0
yarn add @quenty/bindtocloseservice@8.30.0-canary.678.24427877603.0
yarn add @quenty/blend@12.34.0-canary.678.24427877603.0
yarn add @quenty/bodycolorsutils@7.34.0-canary.678.24427877603.0
yarn add @quenty/boundlinkutils@14.35.0-canary.678.24427877603.0
yarn add @quenty/brio@14.29.0-canary.678.24427877603.0
yarn add @quenty/buttondragmodel@1.29.0-canary.678.24427877603.0
yarn add @quenty/buttonhighlightmodel@14.34.0-canary.678.24427877603.0
yarn add @quenty/camera@14.38.0-canary.678.24427877603.0
yarn add @quenty/camerastoryutils@10.19.0-canary.678.24427877603.0
yarn add @quenty/canceltoken@11.19.0-canary.678.24427877603.0
yarn add @quenty/characterutils@12.31.0-canary.678.24427877603.0
yarn add @quenty/chatproviderservice@9.47.0-canary.678.24427877603.0
yarn add @quenty/clienttranslator@14.35.0-canary.678.24427877603.0
yarn add @quenty/clipcharacters@12.37.0-canary.678.24427877603.0
yarn add @quenty/cmdrservice@13.41.0-canary.678.24427877603.0
yarn add @quenty/collectionserviceutils@8.30.0-canary.678.24427877603.0
yarn add @quenty/color3utils@11.34.0-canary.678.24427877603.0
yarn add @quenty/colorpalette@10.37.0-canary.678.24427877603.0
yarn add @quenty/colorpicker@10.35.0-canary.678.24427877603.0
yarn add @quenty/conditions@10.38.0-canary.678.24427877603.0
yarn add @quenty/contentproviderutils@12.30.0-canary.678.24427877603.0
yarn add @quenty/cooldown@11.36.0-canary.678.24427877603.0
yarn add @quenty/coreguienabler@12.32.0-canary.678.24427877603.0
yarn add @quenty/coreguiutils@10.18.0-canary.678.24427877603.0
yarn add @quenty/counter@7.30.0-canary.678.24427877603.0
yarn add @quenty/datastore@13.36.0-canary.678.24427877603.0
yarn add @quenty/deathreport@10.41.0-canary.678.24427877603.0
yarn add @quenty/depthoffield@11.36.0-canary.678.24427877603.0
yarn add @quenty/elo@7.35.0-canary.678.24427877603.0
yarn add @quenty/enabledmixin@11.25.0-canary.678.24427877603.0
yarn add @quenty/equippedtracker@13.32.0-canary.678.24427877603.0
yarn add @quenty/firstpersoncharactertransparency@14.32.0-canary.678.24427877603.0
yarn add @quenty/flipbook@9.30.0-canary.678.24427877603.0
yarn add @quenty/friendutils@12.29.0-canary.678.24427877603.0
yarn add @quenty/funnels@1.22.0-canary.678.24427877603.0
yarn add @quenty/gameconfig@12.45.0-canary.678.24427877603.0
yarn add @quenty/gameproductservice@14.47.0-canary.678.24427877603.0
yarn add @quenty/gamescalingutils@13.34.0-canary.678.24427877603.0
yarn add @quenty/genericscreenguiprovider@13.37.0-canary.678.24427877603.0
yarn add @quenty/grouputils@10.18.0-canary.678.24427877603.0
yarn add @quenty/guivisiblemanager@12.22.0-canary.678.24427877603.0
yarn add @quenty/hide@11.36.0-canary.678.24427877603.0
yarn add @quenty/highlight@10.38.0-canary.678.24427877603.0
yarn add @quenty/hintscoringutils@14.39.0-canary.678.24427877603.0
yarn add @quenty/httppromise@10.18.0-canary.678.24427877603.0
yarn add @quenty/humanoiddescriptionutils@10.18.0-canary.678.24427877603.0
yarn add @quenty/humanoidspeed@12.45.0-canary.678.24427877603.0
yarn add @quenty/humanoidtracker@13.30.0-canary.678.24427877603.0
yarn add @quenty/humanoidutils@2.12.0-canary.678.24427877603.0
yarn add @quenty/idleservice@13.47.0-canary.678.24427877603.0
yarn add @quenty/ik@15.48.0-canary.678.24427877603.0
yarn add @quenty/influxdbclient@7.33.0-canary.678.24427877603.0
yarn add @quenty/inputkeymaputils@14.41.0-canary.678.24427877603.0
yarn add @quenty/inputmode@13.32.0-canary.678.24427877603.0
yarn add @quenty/inputobjectutils@4.29.0-canary.678.24427877603.0
yarn add @quenty/insertserviceutils@10.18.0-canary.678.24427877603.0
yarn add @quenty/instanceutils@13.29.0-canary.678.24427877603.0
yarn add @quenty/jsonutils@10.18.0-canary.678.24427877603.0
yarn add @quenty/linkutils@13.29.0-canary.678.24427877603.0
yarn add @quenty/lipsum@14.34.0-canary.678.24427877603.0
yarn add @quenty/localizedtextutils@12.29.0-canary.678.24427877603.0
yarn add @quenty/marketplaceutils@11.19.0-canary.678.24427877603.0
yarn add @quenty/memorystoreutils@6.18.0-canary.678.24427877603.0
yarn add @quenty/messagingserviceutils@7.20.0-canary.678.24427877603.0
yarn add @quenty/modeltransparencyeffect@11.15.0-canary.678.24427877603.0
yarn add @quenty/motor6d@7.40.0-canary.678.24427877603.0
yarn add @quenty/mouseshiftlockservice@11.18.0-canary.678.24427877603.0
yarn add @quenty/multipleclickutils@13.28.0-canary.678.24427877603.0
yarn add @quenty/observablecollection@12.36.0-canary.678.24427877603.0
yarn add @quenty/pagesutils@5.19.0-canary.678.24427877603.0
yarn add @quenty/particleengine@13.31.0-canary.678.24427877603.0
yarn add @quenty/parttouchingcalculator@14.38.0-canary.678.24427877603.0
yarn add @quenty/pathfindingutils@10.19.0-canary.678.24427877603.0
yarn add @quenty/permissionprovider@14.35.0-canary.678.24427877603.0
yarn add @quenty/physicsutils@8.28.0-canary.678.24427877603.0
yarn add @quenty/playerbinder@14.34.0-canary.678.24427877603.0
yarn add @quenty/playerhumanoidbinder@14.35.0-canary.678.24427877603.0
yarn add @quenty/playerinputmode@9.36.0-canary.678.24427877603.0
yarn add @quenty/playersservicepromises@10.18.0-canary.678.24427877603.0
yarn add @quenty/playerthumbnailutils@10.18.0-canary.678.24427877603.0
yarn add @quenty/playerutils@8.31.0-canary.678.24427877603.0
yarn add @quenty/policyserviceutils@6.18.0-canary.678.24427877603.0
yarn add @quenty/promise@10.18.0-canary.678.24427877603.0
yarn add @quenty/promisemaid@5.18.0-canary.678.24427877603.0
yarn add @quenty/promptqueue@1.35.0-canary.678.24427877603.0
yarn add @quenty/propertyvalue@7.29.0-canary.678.24427877603.0
yarn add @quenty/qframe@10.20.0-canary.678.24427877603.0
yarn add @quenty/r15utils@13.30.0-canary.678.24427877603.0
yarn add @quenty/racketingropeconstraint@12.40.0-canary.678.24427877603.0
yarn add @quenty/radial-image@9.35.0-canary.678.24427877603.0
yarn add @quenty/ragdoll@15.47.0-canary.678.24427877603.0
yarn add @quenty/receiptprocessing@7.32.0-canary.678.24427877603.0
yarn add @quenty/remotefunctionutils@10.18.0-canary.678.24427877603.0
yarn add @quenty/remoting@12.31.0-canary.678.24427877603.0
yarn add @quenty/resetservice@11.35.0-canary.678.24427877603.0
yarn add @quenty/rigbuilderutils@10.32.0-canary.678.24427877603.0
yarn add @quenty/roblox-api-dump@8.20.0-canary.678.24427877603.0
yarn add @quenty/rogue-humanoid@10.45.0-canary.678.24427877603.0
yarn add @quenty/rogue-properties@11.43.0-canary.678.24427877603.0
yarn add @quenty/rx@13.28.0-canary.678.24427877603.0
yarn add @quenty/rxbinderutils@14.34.0-canary.678.24427877603.0
yarn add @quenty/rxsignal@7.28.0-canary.678.24427877603.0
yarn add @quenty/scoredactionservice@16.42.0-canary.678.24427877603.0
yarn add @quenty/screenshothudservice@7.32.0-canary.678.24427877603.0
yarn add @quenty/seatutils@7.33.0-canary.678.24427877603.0
yarn add @quenty/secrets@7.45.0-canary.678.24427877603.0
yarn add @quenty/selectionutils@8.30.0-canary.678.24427877603.0
yarn add @quenty/settings@11.48.0-canary.678.24427877603.0
yarn add @quenty/settings-inputkeymap@10.51.0-canary.678.24427877603.0
yarn add @quenty/snackbar@11.39.0-canary.678.24427877603.0
yarn add @quenty/socialserviceutils@10.18.0-canary.678.24427877603.0
yarn add @quenty/softshutdown@9.44.0-canary.678.24427877603.0
yarn add @quenty/soundgroup@1.38.0-canary.678.24427877603.0
yarn add @quenty/soundplayer@7.37.0-canary.678.24427877603.0
yarn add @quenty/sounds@10.21.0-canary.678.24427877603.0
yarn add @quenty/spawning@10.43.0-canary.678.24427877603.0
yarn add @quenty/sprites@13.28.0-canary.678.24427877603.0
yarn add @quenty/statestack@14.31.0-canary.678.24427877603.0
yarn add @quenty/streamingutils@10.18.0-canary.678.24427877603.0
yarn add @quenty/teamtracker@13.30.0-canary.678.24427877603.0
yarn add @quenty/teamutils@10.30.0-canary.678.24427877603.0
yarn add @quenty/teleportserviceutils@9.30.0-canary.678.24427877603.0
yarn add @quenty/templateprovider@11.35.0-canary.678.24427877603.0
yarn add @quenty/textboxutils@7.28.0-canary.678.24427877603.0
yarn add @quenty/textfilterservice@13.31.0-canary.678.24427877603.0
yarn add @quenty/textfilterutils@10.18.0-canary.678.24427877603.0
yarn add @quenty/textserviceutils@13.34.0-canary.678.24427877603.0
yarn add @quenty/tie@10.38.0-canary.678.24427877603.0
yarn add @quenty/timedtween@7.34.0-canary.678.24427877603.0
yarn add @quenty/timesyncservice@13.32.0-canary.678.24427877603.0
yarn add @quenty/toolutils@1.15.0-canary.678.24427877603.0
yarn add @quenty/transitionmodel@7.36.0-canary.678.24427877603.0
yarn add @quenty/ugcsanitize@1.16.0-canary.678.24427877603.0
yarn add @quenty/uiobjectutils@6.28.0-canary.678.24427877603.0
yarn add @quenty/undostack@7.30.0-canary.678.24427877603.0
yarn add @quenty/userserviceutils@9.30.0-canary.678.24427877603.0
yarn add @quenty/valuebaseutils@13.29.0-canary.678.24427877603.0
yarn add @quenty/valueobject@13.30.0-canary.678.24427877603.0
yarn add @quenty/viewport@11.39.0-canary.678.24427877603.0
yarn add @quenty/voicechat@5.18.0-canary.678.24427877603.0

@klga klga self-assigned this Apr 1, 2026
@klga klga temporarily deployed to integration April 1, 2026 16:37 — with GitHub Actions Inactive
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 1, 2026

Deploy Results

ℹ️ No tests to run

No changed packages with deploy targets were discovered for this PR.

View logs

Test Results

Package Status Try it
@quenty/datastore ✅ Passed (3/3) (12.7s) Open in Roblox
@quenty/chatproviderservice ✅ Passed (3/3) (12.7s) Open in Roblox
@quenty/secrets ✅ Passed (2/2) (12.7s) Open in Roblox
@quenty/settings ✅ Passed (5/5) (12.7s) Open in Roblox
@quenty/settings-inputkeymap ✅ Passed (1/1) (12.7s) Open in Roblox

5 tested, 5 passed, 0 failed in 12.7s · View logs


if self._removing[userId] then
return Promise.defer(function(resolve)
while self._removing[userId] do
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

very paranoid, but can we add a if-statement if we yield for longer than 15s removing we should warn that it took > 15s to remove and reject the promise? That will stop us from leaking these removal threads.

Otherwise we may end up in a scenario where something fails to fully remove a datastore and then we stop the player from being able to join, and we'll never get clear errors, thus leaking the server forever.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated here: c4e5a27

how is this looking?

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yup, safer!

@klga klga temporarily deployed to integration April 2, 2026 17:04 — with GitHub Actions Inactive
@klga klga requested a review from Quenty April 2, 2026 17:06

if self._removing[userId] then
return Promise.defer(function(resolve)
while self._removing[userId] do
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yup, safer!

@Quenty Quenty added the canary This makes auto-it add a canary to the PR label Apr 6, 2026
@Quenty Quenty added canary This makes auto-it add a canary to the PR and removed canary This makes auto-it add a canary to the PR labels Apr 14, 2026
@Quenty Quenty merged commit 80adc48 into main Apr 15, 2026
9 checks passed
@Quenty Quenty deleted the users/klga/datastore-fix branch April 15, 2026 22:28
@Quenty
Copy link
Copy Markdown
Owner

Quenty commented Apr 15, 2026

@Quenty Quenty added the released This issue/pull request has been released. label Apr 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

canary This makes auto-it add a canary to the PR released This issue/pull request has been released.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants