> ## Documentation Index
> Fetch the complete documentation index at: https://docs.photon.codes/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use Stable documentation by default. Honor an explicit Beta request or a URL under /docs/beta/. If the requested version conflicts with the installed CLI package or API origin, clarify the target before writing integration code.
> Pages under /docs/beta/ document Beta; other product pages document Stable. Keep the CLI package, commands, API origin, and credentials within the selected version. State the documentation version in your answer.
> For MCP search, always pass version: Stable or version: Beta. Unfiltered search mixes both versions. For filesystem reads, keep Beta queries under /beta/ and exclude /beta/ from Stable queries; discover paths before reading them.
> The public docs base is https://photon.codes/docs. Convert MCP page paths to public URLs under that base, preserving /beta/ when present. Read https://photon.codes/docs/skill.md for version selection and https://photon.codes/docs/llms.txt for the version indexes.

# ValidationError

> The request contained invalid arguments or a failed precondition.

Maps from gRPC `INVALID_ARGUMENT` and `FAILED_PRECONDITION`.

```typescript
class ValidationError extends WhatsAppError
```

## Constructor

```typescript
ValidationError(message: string, options: WhatsAppErrorOptions): ValidationError
```

### Parameters

<ResponseField name={"message"} type={"string"} required />

<ResponseField name={"options"} type={"WhatsAppErrorOptions"} required />

### Returns

<code>[ValidationError](/docs/reference/stable/whatsapp-business/classes/ValidationError)</code>

## Properties

<ResponseField name={"cause"} type={"unknown"} />

<ResponseField name={"code"} type={"ErrorCode"} typeHref={"/reference/stable/whatsapp-business/types/ErrorCode"} required />

<ResponseField name={"context"} type={"Record<string, string>"} required />

<ResponseField name={"grpcCode"} type={"number"} required />

<ResponseField name={"message"} type={"string"} required />

<ResponseField name={"name"} type={"string"} required />

<ResponseField name={"retryable"} type={"boolean"} required />

<ResponseField name={"stack"} type={"string"} />

<ResponseField name={"stackTraceLimit"} type={"number"} required>
  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.
</ResponseField>

## Methods

### captureStackTrace()

```typescript
captureStackTrace(targetObject: object, constructorOpt?: Function): void
```

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

<ResponseField name={"targetObject"} type={"object"} required />

<ResponseField name={"constructorOpt"} type={"Function"} />

### prepareStackTrace()

```typescript
prepareStackTrace(err: Error, stackTraces: CallSite[]): any
```

#### Parameters

<ResponseField name={"err"} type={"Error"} required />

<ResponseField name={"stackTraces"} type={"CallSite[]"} required />

#### Returns

`any`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.