[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Buffer](https://evolu.dev/docs/api-reference/common/Buffer) › BufferError

Defined in: [packages/common/src/Buffer.ts:21](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Buffer.ts#L21)

Custom error for [Buffer](https://evolu.dev/docs/api-reference/common/Buffer/interfaces/Buffer)-related failures like premature end of data.
Provides better stack traces for debugging binary protocol issues.

## Extends

- `Error`

## Constructors

<a id="constructor"></a>

### Constructor

```ts
new BufferError(message: string): BufferError;
```

Defined in: [packages/common/src/Buffer.ts:22](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Buffer.ts#L22)

#### Overrides

```ts
Error.constructor;
```

## Methods

<a id="capturestacktrace"></a>

### captureStackTrace()

```ts
static captureStackTrace(targetObject: object, constructorOpt?: Function): void;
```

Defined in: node_modules/.bun/@types+node@24.12.0/node_modules/@types/node/globals.d.ts:52

Creates a `.stack` property on `targetObject`, which when accessed returns
a string representing the location in the code at which
`Error.captureStackTrace()` was called.

```js
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:

```js
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();
```

#### Inherited from

```ts
Error.captureStackTrace;
```

---

<a id="iserror"></a>

### isError()

```ts
static isError(error: unknown): error is Error;
```

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.error.d.ts:23

Indicates whether the argument provided is a built-in Error instance or not.

#### Inherited from

```ts
Error.isError;
```

---

<a id="preparestacktrace"></a>

### prepareStackTrace()

```ts
static prepareStackTrace(err: Error, stackTraces: CallSite[]): any;
```

Defined in: node_modules/.bun/@types+node@24.12.0/node_modules/@types/node/globals.d.ts:56

#### See

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

#### Inherited from

```ts
Error.prepareStackTrace;
```

## Properties

<a id="cause"></a>

### cause?

```ts
optional cause?: unknown;
```

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts:26

#### Inherited from

```ts
Error.cause;
```

---

<a id="message"></a>

### message

```ts
message: string;
```

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts:1077

#### Inherited from

```ts
Error.message;
```

---

<a id="name"></a>

### name

```ts
name: string;
```

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts:1076

#### Inherited from

```ts
Error.name;
```

---

<a id="stack"></a>

### stack?

```ts
optional stack?: string;
```

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts:1078

#### Inherited from

```ts
Error.stack;
```

---

<a id="stacktracelimit"></a>

### stackTraceLimit

```ts
static stackTraceLimit: number;
```

Defined in: node_modules/.bun/@types+node@24.12.0/node_modules/@types/node/globals.d.ts:68

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

```ts
Error.stackTraceLimit;
```