Documentation / @etherfold/core / NoLiveReceiverError
Class: NoLiveReceiverError ​
Defined in: packages/core/src/errors.ts:190
A {source, config} that NO LIVE RECEIVER under this container holds right now.
The in-process twin of the ingest route's context-mismatch refusal (@etherfold/server), and it names EVERY live context rather than picking one, for that route's own reason: naming them all is information, and picking one is a policy this has no basis for. It exists because a container holds several folds and only SOME of them have a receiver -- a FOLLOWER re-folds a stored stream and is deliberately not addressable on the wire (ADR-0044) -- so "which receiver does this sender feed" is a question with a real empty answer.
Why retryable is a FACT about the instance rather than a constant ​
The two shapes this covers are not the same fact, and collapsing them would make one of them wrong:
- live receivers exist and none is yours is a MISCONFIGURATION, exactly like
WireContextMismatchError: this process folds other streams and no block number and no waiting makes a foreign{source, config}right. NOT retryable, so a host stops rather than pushing for ever at something that will never accept it. - nothing is live at all is a fact about the MOMENT, and since ADR-0087 it is a much narrower one. A stream's address resolves to the DEPLOYMENT's own writer of that stream, held for as long as any registered generation folds it, so "every fold here is a follower" stopped being a way to reach this at all -- which was the whole defect: a restarted deployment answered it for ever, fetched nothing, and reported itself healthy. What is left is a container holding no fold at all, or one built with no way to store a stream (and that is now refused at
open). Retryable, so a process that is between folds stays up rather than exiting.
What it is deliberately NOT is an answer. Inventing an expectedFromBlock for a sender with nowhere to push would be a fetcher fetching ranges into nothing: a silent stall at best, and a HOLE if anything later claimed that range was covered.
Extends ​
Error
Constructors ​
Constructor ​
new NoLiveReceiverError(
expected,received):NoLiveReceiverError
Defined in: packages/core/src/errors.ts:194
Parameters ​
expected ​
readonly WireContext[]
Every {source, config} this container holds a LIVE receiver for, which may be none.
received ​
The {source, config} the sender asked about.
Returns ​
NoLiveReceiverError
Overrides ​
Error.constructor
Properties ​
cause? ​
optionalcause?:unknown
Defined in: node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts:24
Inherited from ​
Error.cause
expected ​
readonlyexpected: readonlyWireContext[]
Defined in: packages/core/src/errors.ts:196
Every {source, config} this container holds a LIVE receiver for, which may be none.
message ​
message:
string
Defined in: node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1075
Inherited from ​
Error.message
name ​
readonlyname:"NoLiveReceiverError"='NoLiveReceiverError'
Defined in: packages/core/src/errors.ts:191
Overrides ​
Error.name
received ​
readonlyreceived:WireContext
Defined in: packages/core/src/errors.ts:198
The {source, config} the sender asked about.
retryable ​
readonlyretryable:boolean
Defined in: packages/core/src/errors.ts:192
stack? ​
optionalstack?:string
Defined in: node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1076
Inherited from ​
Error.stack
Methods ​
isError() ​
staticisError(error):error is Error
Defined in: node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.error.d.ts:21
Indicates whether the argument provided is a built-in Error instance or not.
Parameters ​
error ​
unknown
Returns ​
error is Error
Inherited from ​
Error.isError