effectmq
Reference

Error reference

Typed producer, worker, waiting, storage, and Redis failures.

EffectMQ exposes predictable failures in Effect error channels. Handler-domain failures are distinct from infrastructure and protocol failures.

Task definition and identity

TagFieldsMeaning
TaskIdentityGenerationErrortaskName, causeThe idempotency callback or Crypto UUID generation failed.

Invalid task retry, storage, retention, and scheduler backfill configuration is a programmer defect detected by the first consuming operation. Definition invariants do not appear in typed error unions.

Offering

TagFieldsMeaning
IndeterminateWriteErrorqueue, taskId, causeRedis may have committed the offer before the connection failed.
RetentionContextRequiredqueue, taskIdCurrent-task result retention was requested outside a managed handler.

OfferError also includes storage, engine, and Schema errors.

Completion and leases

TagFieldsMeaning
LeaseLostprefix, taskId, causeThe attempt no longer owns the generation.
TaskEngineErrorreason, causeRedis transport, script, reply, relationship, commit, or lease boundary failure.

TaskEngineError.reason._tag is one of TransportFailure, ScriptFailure, InvalidReply, RelationshipLimit, IndeterminateCommit, or LeaseLost.

Waiting

TagFieldsMeaning
TaskFailedhandle, failureThe exact generation settled with the typed handler or built-in failure.
TaskNotFoundhandleNo task record, result, or known generation exists.
ResultExpiredhandle, latestGenerationThe handle's retained result is unavailable.
CallerTimeouthandle, timeoutThe caller-local deadline elapsed; task execution continues.
CursorExpiredrequested, earliestEvent retention trimmed the requested position.

Built-in terminal task failures are tagged ~effectmq/Error/Stalled and ~effectmq/Error/Canceled.

Storage protocol

TagMeaning
UnsupportedStorageValueThe value includes an unsupported type, unsafe number, class instance, or cycle.
StorageLimitExceededEncoded payload, success, or failure exceeds maxValueBytes.
StorageCountLimitExceededA task-retention relationship collection reached its limit.
CorruptStorageValueStored data has an invalid envelope or semantic shape.
StorageEncodingErrorMessagePack or base64 encoding failed.
StorageDecodingErrorByte, base64, or MessagePack decoding failed.
UnsupportedProtocolVersionThe envelope version is not readable by this release.
SchemaIdentityMismatchThe stored value or handle belongs to another schema identity.

Live configuration

TagMeaning
TaskEngineConfigurationErrormaintenanceBatchSize is outside 1–1,000.
InvalidRedisConfigurationStandalone pool bounds or timeouts are invalid.
UnsupportedRedisTopologyRedis Cluster was configured or detected.

Recovery matrix

FailureRecovery
IndeterminateWriteErrorRetry the same queue and task identity with return-existing.
CallerTimeoutContinue waiting later with the same handle if the result retention window permits.
CursorExpiredReconcile durable state, then resume from an acceptable cursor.
ResultExpiredRead the result from an application-owned durable store if longer retention is required.
LeaseLostStop treating the attempt as owner; do not acknowledge it again.
SchemaIdentityMismatchRestore the matching schema/version or migrate stored data explicitly.

On this page