Errors
The FlexiQ error hierarchy — catch by specific type or by the FlexiQError base.
The FlexiQ error hierarchy — catch by specific type or by the FlexiQError base.
Every error the SDK throws extends FlexiQError, so a single catch can scope
all of them; the specific subclasses let you branch on what went wrong.
import { FlexiQError, ResourceNotFoundError } from "@byteveda/flexiq";
try {
await runJob();
} catch (err) {
if (err instanceof ResourceNotFoundError) reRegister(err.resourceName);
else if (err instanceof FlexiQError) report(err);
else throw err;
}| Class | Extends | Thrown when |
|---|---|---|
FlexiQError | Error | Base — never thrown directly. |
TaskNotRegisteredError | FlexiQError | A worker dequeues a job whose task name isn't registered. |
JobFailedError | FlexiQError | result() awaits a job that failed or dead-lettered. |
JobCancelledError | FlexiQError | result() awaits a cancelled job. |
ResultTimeoutError | FlexiQError | result() times out before the job settles. |
QueueError | FlexiQError | Queue construction / operational error (e.g. no dbPath/dsn). |
LockNotAcquiredError | FlexiQError | withLock can't acquire a held lock. |
LockLostError | FlexiQError | A held lock's lease expired before withLock's guarded section finished. |
SerializationError | FlexiQError | (De)serialization or payload-integrity failure (e.g. a bad SignedSerializer signature). |
CryptoError | SerializationError | A payload codec (HmacCodec, AesGcmCodec) fails to decrypt or verify. |
NotesValidationError | FlexiQError | A notes object breaks the contract (>15 fields or >4 KiB). |
WorkflowError | FlexiQError | Workflow definition, submission, or query error. |
PredicateRejectedError | FlexiQError | An enqueue-time gate rejected the submission. |
InterceptionError | FlexiQError | An enqueue interceptor rejects, misbehaves, or redirects illegally. |
ProxyError | FlexiQError | A proxy handler signature, expiry, purpose, or allowlist failure. |
ResourceError | FlexiQError | Base for resource dependency-injection errors. |
ResourceNotFoundError | ResourceError | Resolving a resource name that was never registered. |
ResourceScopeError | ResourceError | Resolving a task-scoped resource at worker scope. |
ResourceUnavailableError | ResourceError | A pooled resource couldn't be checked out before its acquire timeout. |
Selected errors carry context: TaskNotRegisteredError.taskName,
JobFailedError.jobId, ResultTimeoutError.timeoutMs,
LockNotAcquiredError.lockName, ResourceNotFoundError.resourceName.
See error handling for retry / timeout / dead-letter behavior around a failing task.