On this page

SpellSpaceScopeError๏ƒ

Use md.SpellSpaceScopeError from the public package namespace.

Implementation source

class SpellSpaceScopeError(message: str)[source]๏ƒ
Purpose:

Signal that a SpellSpace scoping rule was violated - a lifetime or ownership failure, not a generic runtime error.

Raised When:

  • A spell bound Existence.unique_per_spell_space is resolved with no active SpellSpace.

  • A SpellSpace is used across a different Conduit than the one that created it.

  • A SpellSpace is used after it has been closed.

What To Do About It:

Enter the scope before resolving: conduit.enter_spellspace() creates and activates one, and SpellSpace.meld(...) is the only door that can satisfy request-local storage. The conduit front door deliberately REFUSES unique_per_spell_space spells rather than inventing a scope, so this error means you resolved through the wrong door, not that the binding is wrong.

Contract:

  • Indicates a SpellSpace lifecycle or ownership violation rather than a generic runtime failure.

  • Message payload stays free-form so callers can name the exact rule that failed.

  • Subclasses RuntimeError, so broad runtime handlers still catch it.

Registration:

Exported on the public root surface; import, raise, and catch freely.

Subsystem Context:

One of the 11 utilities/custom_exceptions/ types, paired with the Creations/SpellSpace family in aether/conduit/. SpellSpace enforces active-scope semantics and supports reset/versioning; this is what it raises when that enforcement trips.

System Context:

Fires at meld time, in the resolution layer of the DGR. It is the one Existence mode whose scope the caller must open explicitly - the other five (unique, unique_per_conduit, many, unique_per_conduit_cluster, unique_per_conduit_lineage) resolve their container from state Melder already owns.

AGENT_ACCESS: public

AGENT_PURPOSE:

access: public. Raised when a unique_per_spell_space spell is resolved with no active SpellSpace, or a SpellSpace is used cross-conduit or after close; enter conduit.enter_spellspace() first.

Topic reference ยท Full contents