---
url: /docs/api/core/classes/ZwiftValidationError.md
---
[**@kaiord/core**](../README.md)

***

[@kaiord/core](../README.md) / ZwiftValidationError

# Class: ZwiftValidationError

Defined in: [packages/core/src/domain/types/zwift-errors.ts:61](https://github.com/pablo-albaladejo/kaiord/blob/3eacbe62ef72342d970523967cc5155b5935bb85/packages/core/src/domain/types/zwift-errors.ts#L61)

Error thrown when Zwift schema validation fails.

This error is thrown when Zwift data doesn't conform to the expected schema.

## Example

```typescript
import { ZwiftValidationError } from '@kaiord/core';

try {
  // validation code
} catch (error) {
  if (error instanceof ZwiftValidationError) {
    error.errors.forEach(err => {
      console.error(`${err.field}: ${err.message}`);
    });
  }
}
```

## Extends

* `SchemaValidationError`

## Constructors

### Constructor

> **new ZwiftValidationError**(`message`, `errors`): `ZwiftValidationError`

Defined in: [packages/core/src/domain/types/shared-errors.ts:27](https://github.com/pablo-albaladejo/kaiord/blob/3eacbe62ef72342d970523967cc5155b5935bb85/packages/core/src/domain/types/shared-errors.ts#L27)

#### Parameters

##### message

`string`

##### errors

[`ValidationError`](../type-aliases/ValidationError.md)\[]

#### Returns

`ZwiftValidationError`

#### Inherited from

`SchemaValidationError.constructor`

## Properties

### cause?

> `optional` **cause?**: `unknown`

Defined in: node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts:24

#### Inherited from

`SchemaValidationError.cause`

***

### errors

> `readonly` **errors**: [`ValidationError`](../type-aliases/ValidationError.md)\[]

Defined in: [packages/core/src/domain/types/shared-errors.ts:29](https://github.com/pablo-albaladejo/kaiord/blob/3eacbe62ef72342d970523967cc5155b5935bb85/packages/core/src/domain/types/shared-errors.ts#L29)

#### Inherited from

`SchemaValidationError.errors`

***

### message

> **message**: `string`

Defined in: node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1075

#### Inherited from

`SchemaValidationError.message`

***

### name

> `readonly` **name**: `"ZwiftValidationError"` = `"ZwiftValidationError"`

Defined in: [packages/core/src/domain/types/zwift-errors.ts:62](https://github.com/pablo-albaladejo/kaiord/blob/3eacbe62ef72342d970523967cc5155b5935bb85/packages/core/src/domain/types/zwift-errors.ts#L62)

#### Overrides

`SchemaValidationError.name`

***

### stack?

> `optional` **stack?**: `string`

Defined in: node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1076

#### Inherited from

`SchemaValidationError.stack`

***

### stackTraceLimit

> `static` **stackTraceLimit**: `number`

Defined in: node_modules/.pnpm/@types+node@26.6.5/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

`SchemaValidationError.stackTraceLimit`

## Methods

### captureStackTrace()

> `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`

Defined in: node_modules/.pnpm/@types+node@26.6.5/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.

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

#### Parameters

##### targetObject

`object`

##### constructorOpt?

`Function`

#### Returns

`void`

#### Inherited from

`SchemaValidationError.captureStackTrace`

***

### prepareStackTrace()

> `static` **prepareStackTrace**(`err`, `stackTraces`): `any`

Defined in: node_modules/.pnpm/@types+node@26.6.5/node_modules/@types/node/globals.d.ts:55

#### Parameters

##### err

`Error`

##### stackTraces

`CallSite`\[]

#### Returns

`any`

#### See

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

#### Inherited from

`SchemaValidationError.prepareStackTrace`
