DataExportDrainError
Defined in: packages/client/src/export-data.ts:87
Thrown when exportData’s strict drain cannot produce a drained journal (ADR-0035 decision 3). Carries
the MutationDiagnostics snapshot at the moment of failure so the caller sees exactly what blocked the
export, and a reason distinguishing the two failure modes:
"non-drainable-state"—failed/quarantined/conflictedrows are present (either pre-existing, so the failure is immediate with no waiting, or a mid-drainflush()failure that moved rows tofailed); these terminal states never drain on their own, so waiting is pointless."timeout"— drainable rows (pending/sending/acked) did not reach fully-drained within the budget; most commonlyackedwrites whose synced echo never arrived (an offline device, a stalled read path).
A distinct type — not a bare Error — so a caller can instanceof-branch a drain failure from a genuine
export failure, inspect the diagnostics, and choose the escape hatch (drainJournal: false) or the
lossless store backup instead.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new DataExportDrainError(
reason,diagnostics):DataExportDrainError
Defined in: packages/client/src/export-data.ts:93
Parameters
Section titled “Parameters”reason
Section titled “reason”"non-drainable-state" | "timeout"
diagnostics
Section titled “diagnostics”Returns
Section titled “Returns”DataExportDrainError
Overrides
Section titled “Overrides”Error.constructor
Properties
Section titled “Properties”cause?
Section titled “cause?”
optionalcause?:unknown
Defined in: node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts:24
The cause of the error.
Inherited from
Section titled “Inherited from”Error.cause
diagnostics
Section titled “diagnostics”
readonlydiagnostics:MutationDiagnostics
Defined in: packages/client/src/export-data.ts:91
The mutation diagnostics at the moment the drain gave up — the evidence of what was unflushed.
message
Section titled “message”message:
string
Defined in: node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1075
Inherited from
Section titled “Inherited from”Error.message
name:
string
Defined in: node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1074
Inherited from
Section titled “Inherited from”Error.name
reason
Section titled “reason”
readonlyreason:"non-drainable-state"|"timeout"
Defined in: packages/client/src/export-data.ts:89
Which drain failure occurred (see the class doc).
stack?
Section titled “stack?”
optionalstack?:string
Defined in: node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1076
Inherited from
Section titled “Inherited from”Error.stack
stackTraceLimit
Section titled “stackTraceLimit”
staticstackTraceLimit:number
Defined in: node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:67
The Error.stackTraceLimit property specifies the number of stack frames
collected by a stack trace (whether generated by new Error().stack or
Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes
will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
Inherited from
Section titled “Inherited from”Error.stackTraceLimit
Methods
Section titled “Methods”captureStackTrace()
Section titled “captureStackTrace()”Call Signature
Section titled “Call Signature”
staticcaptureStackTrace(targetObject,constructorOpt?):void
Defined in: node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:51
Creates a .stack property on targetObject, which when accessed returns
a string representing the location in the code at which
Error.captureStackTrace() was called.
const myObject = {};Error.captureStackTrace(myObject);myObject.stack; // Similar to `new Error().stack`The first line of the trace will be prefixed with
${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames
above constructorOpt, including constructorOpt, will be omitted from the
generated stack trace.
The constructorOpt argument is useful for hiding implementation
details of error generation from the user. For instance:
function a() { b();}
function b() { c();}
function c() { // Create an error without stack trace to avoid calculating the stack trace twice. const { stackTraceLimit } = Error; Error.stackTraceLimit = 0; const error = new Error(); Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace throw error;}
a();Parameters
Section titled “Parameters”targetObject
Section titled “targetObject”object
constructorOpt?
Section titled “constructorOpt?”Function
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Error.captureStackTrace
Call Signature
Section titled “Call Signature”
staticcaptureStackTrace(targetObject,constructorOpt?):void
Defined in: node_modules/.bun/bun-types@1.3.14/node_modules/bun-types/globals.d.ts:1042
Create .stack property on a target object
Parameters
Section titled “Parameters”targetObject
Section titled “targetObject”object
constructorOpt?
Section titled “constructorOpt?”Function
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Error.captureStackTrace
isError()
Section titled “isError()”Call Signature
Section titled “Call Signature”
staticisError(error):error is Error
Defined in: node_modules/.bun/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
Section titled “Parameters”unknown
Returns
Section titled “Returns”error is Error
Inherited from
Section titled “Inherited from”Error.isError
Call Signature
Section titled “Call Signature”
staticisError(value):value is Error
Defined in: node_modules/.bun/bun-types@1.3.14/node_modules/bun-types/globals.d.ts:1037
Check if a value is an instance of Error
Parameters
Section titled “Parameters”unknown
The value to check
Returns
Section titled “Returns”value is Error
True if the value is an instance of Error, false otherwise
Inherited from
Section titled “Inherited from”Error.isError
prepareStackTrace()
Section titled “prepareStackTrace()”
staticprepareStackTrace(err,stackTraces):any
Defined in: node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:55
Parameters
Section titled “Parameters”Error
stackTraces
Section titled “stackTraces”CallSite[]
Returns
Section titled “Returns”any
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
Inherited from
Section titled “Inherited from”Error.prepareStackTrace