Expand description
Canonical error codes emitted while opening a client route.
Error frames remain extensible strings, but these daemon-owned route-open outcomes need identical spelling across the daemon and SDK retry policies.
Constants§
- MODULE_
NO_ PROTOCOL - The target module is declared as speaking no subc wire protocol
(
protocol: "none"in daemon config), so it has no control lane and can never accept a route. The daemon supervises its process and nothing else. - MODULE_
RELOADING - The target module’s endpoint is draining for a reload, restart or disable.
- MODULE_
REMOVED - MODULE_
TIMEOUT - MODULE_
WARMING - SCOPE_
ATTRIBUTES_ TOO_ LARGE - One record in a
scope.synccarried more attribute bytes than a scope may hold. The whole sync is refused and nothing changes. - SCOPE_
ATTRIBUTE_ NOT_ PERMITTED - The record sets
agent_idordelegatesand its owner is not listed in the daemon’sscope_authority_owners. - SCOPE_
CARRIER_ TARGETS_ INVALID - A targeted carrier entry lists no target modules, or more than
scope::MAX_CARRIER_TARGETS. - SCOPE_
CHANGED - A scoped
route.openwas admitted, but the scope record changed before the module’s bind committed. Nothing was sent on the route, so the caller may re-open against the current record: RETRYABLE. - SCOPE_
DELEGATES_ WITHOUT_ AGENT - The record sets
delegateswithout anagent_idto delegate. - SCOPE_
ENDED - A scoped
route.opennamed ascope_epochthat is not the live one, or the scope ended between admission and commit. TERMINAL. - SCOPE_
EPOCH_ ENDED - The record names an
(owner, ref, scope_epoch)that already ended in this daemon incarnation; an ended session cannot come back. - SCOPE_
EPOCH_ REGRESSED - The record lowers the
scope_epochthe daemon holds for its ref. - SCOPE_
EPOCH_ REQUIRED - A scoped
route.opennamed noscope_epoch. Every opener names one, the owner included, so an old call can never be carried into a newer session that reused the ref. TERMINAL. - SCOPE_
KIND_ CHANGED - The record changes
kindat the samescope_epoch. - SCOPE_
LIVE_ LIMIT_ EXCEEDED scope.syncnamed more live scopes than one owner may hold. The whole sync is refused and nothing changes.- SCOPE_
NOT_ CARRIER - The opener of a scoped
route.openis neither the scope’s owner nor a listed carrier, or it is a targeted carrier and the target module is not in its list. TERMINAL. - SCOPE_
NOT_ LIVE - A scoped
route.opennamed a ref the owner’s synced set does not hold, or an owner that is not a configured module. TERMINAL. - SCOPE_
NOT_ SYNCED - A
route.opennamed a scope whose owner is configured but has not synced since this daemon incarnation started. RETRYABLE: after a daemon restart a carrier’s open can arrive before the owner re-syncs, and the carrier waits within its own deadline. Seedocs/designs/daemon-scopes.md. - SCOPE_
PARENT_ NOT_ PERMITTED - The record’s parent link is not permitted: the parent’s owner has synced
and the parent is not live at the named epoch, the syncing owner is
neither the parent’s owner nor in its
child_owners, or the link would close a cycle. - SCOPE_
SYNC_ NOT_ AUTHORITY scope.synccame from a connection that is not the owner’s sync authority: another connection of the same launch holds it, or this connection’s launch is no longer the owner’s current one (a blue/green swap candidate before cutover, or an incumbent after it).- SCOPE_
SYNC_ STALE scope.synccarried a generation no larger than the last one the authority had accepted. The whole sync is refused and nothing changes.- SCOPE_
UNSUPPORTED - Raised by a carrier, never by the daemon: the daemon does not advertise
scopes/v1, so the carrier fails the call instead of opening an unscoped route. - STALE_
ROUTE_ EPOCH - TARGET_
UNAVAILABLE - UNKNOWN_
CHANNEL - UNKNOWN_
MODULE
Functions§
- is_
established_ route_ dead - Whether the caller should evict this established route, reopen it, and resend the request once. Consumers mapping route death to their own custody, provider, or suspect verdict keep their own named code lists; sharing this predicate for those meanings can change a verdict on a protocol bump (prefrontal#59).
- is_
retryable_ route_ open - Whether a
route.openrefusal carryingcodemay be retried in place within the caller’s deadline, or is terminal for the target as named.