'handle-disposed' ​Contract 2.0.0 · package sha256
a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e· generated fromconfigurator-runtime.d.ts,tables/problems.jsonandservices/onsite-scripter/scripts/contract-docs-what-to-do.jsonbyservices/onsite-scripter/scripts/build-contract-docs.mjs; edit the source, not this file.
A member of ProblemCode · stable · since 2.0.0
A disposed handle or removed part was used; nothing happened.
Stop writing through the disposed collection or removed part; get a live handle again (session.collection(name) creates it anew, session.node(nodeId) never goes stale) and check Part.exists or Collection.disposed before a write you keep.
const legs = session.collection('legs', { role: 'product' });
if (!legs.disposed) await legs.set({ items: [] });
Collection.disposed: True once disposed: writes then do nothing, record 'handle-disposed' and resolve 'refused' with reason 'disposed'; load() starts nothing and rejects AbortError (spec section 3.4).Collection.load: On a disposed collection it starts nothing, records 'handle-disposed' and rejects AbortError, which fails no transaction (spec section 3.4).Collection.part: While it doesn't exist, a write through it does nothing and records 'handle-disposed' (Part.exists): for an item a pending set() or load() will create, write through find({ collection, key }), a rule that stays pending until the item lands.Part.exists: A node() handle's writes stay rules on its address, pending while a queued scene write loads the node (Writer.node); through any other such part, writes do nothing, record 'handle-disposed' and resolve 'refused' with reason 'disposed'.PartActions.set: No match records 'target-unmatched'; a removed part records 'handle-disposed' (a node() handle never does: its write is a rule on the model's address).Placement.parent: A Collection.load whose parent has no part left at the load's own commit point (a swap queued before it whose asset lacks that part) places nothing, resolves with a part that reads exists: false and records 'handle-disposed'.Reason: - 'disposed': a new write through a disposed collection or naming one as its owner, or through a part that reads exists: false (never a node() handle); nothing ran, matched is 0 without 'target-unmatched', and problems holds 'handle-disposed' (spec section 3.4).ReportFields.matched: A write refused 'disposed' reports 0 and records 'handle-disposed' instead.Writer.node: It never records 'handle-disposed'.The set is open: handle a code you don't know ('other').
operations/settlement/write-disposed-target (tables/operations.json)failure-matrix/cases/owner-disposed-during-transaction (tables/failure-matrix.json)failure-matrix/cases/write-disposed-target (tables/failure-matrix.json)failure-matrix/errorCases/disposed-handle (tables/failure-matrix.json)lifecycle/operations/create-content (tables/lifecycle.json)lifecycle/operations/dispose (tables/lifecycle.json)