---
title: graphql/error
---

{/* title can be removed in Nextra 4, since sidebar title will take from first h1 */}

# `graphql/error`

The `graphql/error` module is responsible for creating and formatting
GraphQL errors. You can import either from the `graphql/error` module, or from the root `graphql` module. For example:

```js
import { GraphQLError } from 'graphql';
```

## Overview

<ul className="apiIndex">
  <li>
    <a href="#graphqlerror">
      `class GraphQLError` A representation of an error that occurred within
      GraphQL.
    </a>
  </li>
  <li>
    <a href="#syntaxerror">
      `function syntaxError` Produces a GraphQLError representing a syntax
      error.
    </a>
  </li>
  <li>
    <a href="#locatedError">
      `function locatedError` Produces a new GraphQLError aware of the location
      responsible for the error.
    </a>
  </li>
  <li>
    <a href="#formaterror">
      `function formatError` Format an error according to the rules described by
      the Response Format.
    </a>
  </li>
</ul>

## Errors

### `GraphQLError`

```ts
class GraphQLError extends Error {
  constructor(
    message: string,
    nodes?: any[],
    stack?: string,
    source?: Source,
    positions?: number[],
    originalError?: Error,
    extensions?: Record<string, unknown>,
  );
}
```

A representation of an error that occurred within GraphQL. Contains
information about where in the query the error occurred for debugging. Most
commonly constructed with `locatedError` below.

### `syntaxError`

```ts
function syntaxError(
  source: Source,
  position: number,
  description: string,
): GraphQLError;
```

Produces a GraphQLError representing a syntax error, containing useful
descriptive information about the syntax error's position in the source.

### `locatedError`

```ts
function locatedError(error: Error, nodes: any[]): GraphQLError;
```

Given an arbitrary Error, presumably thrown while attempting to execute a
GraphQL operation, produce a new GraphQLError aware of the location in the
document responsible for the original Error.

### `formatError`

```ts
function formatError(error: GraphQLError): GraphQLFormattedError;

type GraphQLFormattedError = {
  message: string;
  locations: GraphQLErrorLocation[];
};

type GraphQLErrorLocation = {
  line: number;
  column: number;
};
```

Given a GraphQLError, format it according to the rules described by the
Response Format, Errors section of the GraphQL Specification.
