Error codes

Our monday.com platform API returns the set of predefined errors listed below. If an exception is handled by the GraphQL application later, it will return a 200 status code and further information in one of these three formats:

{
  "errors": [
    {
      "message": "Parse error on \")\" (RPAREN) at [59, 15]",
      "locations": [
        {
          "line": 59,
          "column": 15
        }
      ]
    }
  ],
  "account_id": 1234567890
}
{
  "errors": [
    {
      "message": "User unauthorized to perform action",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "me"
      ],
      "extensions": {
        "code": "UserUnauthorizedException",
        "error_data": {},
        "status_code": 403
      }
    }
  ],
  "error_message": "User unauthorized to perform action",
  "error_code": "UserUnauthorizedException",
  "error_data": {},
  "status_code": 403,
  "account_id": 123456
}
{  
    "error_message": "Internal server error",
    "status_code": 500
}

Check out this code sample below to see how to catch the different error structures!

function handleError(error) {
  if (error.hasOwnProperty('error_message') || error.hasOwnProperty('error_code') || error.hasOwnProperty('errors')) {
      throw 'error!';
    }
  }
  
  try {
    handleError(error);
  } catch (e) {
    console.error(e);
  }

Internal server error

HTTP status code: 500

A 500 internal server error is a general error that indicates something went wrong.

Common causes of this error are:

  • Invalid arguments, such as board or item IDs that don't exist
  • Malformatted JSON column values when using the create_item or change_multiple_column_values mutations

If these don't fix the issue, reach out to our team!

Concurrency limit exceeded

HTTP status code: 429

  • A Concurrency limit exceeded error indicates that you exceeded the maximum number of queries allowed at once.
  • To resolve the error, reduce the number of queries sent at once and use a retry mechanism in your code.
{
  "errors": [
    {
      "message": "Concurrency limit exceeded",
      "extensions": {
        "code": "maxConcurrencyExceeded"
      }
    }
  ],
  "account_id": 123456
}

Rate limit exceeded

HTTP status code: 429

  • A Rate Limit Exceeded error indicates that you made more than 5,000 requests in one minute.
  • To resolve the error, reduce the number of requests sent in one minute.
{
"error_message": "Rate Limit Exceeded.",
"status_code": 429
}

Your IP Is restricted

HTTP status code: 401

  • A Your ip is restricted error indicates that an account admin has restricted access to the system from specific IP addresses.
  • To resolve the error, confirm that your IP address is not restricted by your account admin.
{
"error_message": "Your ip is restricted.",
"status_code": 401
}

Unauthorized

HTTP status code: 401

  • An Unauthorized error indicates that you don't have permission to access the data you're attempting to access.
  • To resolve the error, ensure your API key is valid and passed in the “Authorization” header.

Bad request

HTTP status code: 400

  • A Bad request error indicates that the structure of your query string was passed incorrectly.
  • To resolve the error, ensure your query string is passed with the “query” key, your request is sent as a POST request with a JSON body, and that your query does not contain unterminated strings.

Missing required permissions

HTTP status code: 200

  • A missingRequiredPermissions error indicates that the API operation has exceeded the OAuth permission scopes granted for the app.
  • To resolve the error, review your app's permission scopes to ensure the correct ones are requested.

Parse error on...

HTTP status code: 200

  • A Parse error on... error indicates that some formatting in your query string is incorrect.
  • To resolve the error, ensure your query is a valid string and all parenthesis, brackets, and curly brackets are closed.

ColumnValueException

HTTP status code: 200

  • A ColumnValueException error indicates that the column value you are attempting to send in your query is of the incorrect formatting.
  • To resolve the error:
    • If you are updating a column value, ensure the value conforms with each column’s data structure. To learn more about columns that support JSON values, check out the change_column_values() method here.
    • If you’re retrieving a column value, ensure the column is supported by our API and not calculated in the client (eg, formula column).
    • If you get the error "The column has no connected boards," ensure the Connect column you're referencing is connected to a board via the monday.com UI.

ComplexityException

HTTP status code: 200

  • A ComplexityException error indicates that you have reached the complexity limit.
  • To resolve the error, add limits to your queries and only request the information you need. Check out our rate limit documentation to learn more about complexity limits.

CorrectedValueException

HTTP status code: 200

  • A CorrectedValueException error indicates that the value you are attempting to send in your query is of the wrong type.
  • If you try to update a column with simple values (String values), ensure the column supports this type of value format. To learn more about columns that support simple values, check out the change_simple_column_values() method here.

CreateBoardException

HTTP status code: 200

  • A CreateBoardException error indicates that there was an error in your query to create a board.
  • To resolve the error:
    • If you’re creating a board from a template, ensure the template ID is a valid monday template or a board that has template status. To learn more about making a board a template, check out our resource on board templates here.
    • If you’re duplicating a board, ensure the board ID exists.

DeleteLastGroupException

HTTP status code: 409

  • A DeleteLastGroupException error indicates that the last group on a board is being deleted or archived.
  • To resolve the error, ensure that you have at least one group on the board to resolve the error.

Field limit exceeded

HTTP status code: 429

  • A FIELD_LIMIT_EXCEEDED error indicates that there are too many requests running concurrently.
  • To resolve the error, wait for the amount of time indicated in the error before retrying the call.

InvalidArgumentException

HTTP status code: 200

  • An InvalidArgumentException error indicates that the argument being passed in the query is not a valid argument or that you've hit a pagination limit.
  • To resolve the error, ensure there are no typos, the argument exists for the object you are querying, or make your result window smaller.

InvalidBoardIdException

HTTP status code: 200

  • An InvalidBoardIdException error indicates that the board ID being passed in the query is not a valid board ID.
  • To resolve the error, ensure the board ID exists and you have access to the board.

InvalidColumnIdException

HTTP status code: 200

  • An InvalidColumnIdException error indicates that the column ID being passed in the query is not a valid column ID.
  • To resolve the error, ensure the column ID exists and you have access to the column.

InvalidUserIdException

HTTP status code: 200

  • An InvalidUserIdException error indicates that the user ID being passed in the query is not a valid user ID.
  • To resolve the error, ensure the user ID exists and this user is assigned to your board.

InvalidVersionException

HTTP status code: 200

  • An InvalidVersionException error indicates that the requested API version is invalid.
  • To resolve the error, ensure that your request follows the proper format.

ItemNameTooLongException

HTTP status code: 200

  • An ItemNameTooLongException error indicates that the item name you have chosen has exceeded the number of characters allowed.
  • To resolve the error, ensure your item name is between 1 and 255 characters long.

ItemsLimitationException

HTTP status code: 200

  • An ItemsLimitationException error indicates that you have exceeded the limit of items allowed for a board.
  • To prevent abuse, each board has a limit of 10,000 items created via the API. This error is thrown when you have reached the limit.

JsonParseException

HTTP status code: 400

  • A JsonParseException error indicates an issue interpreting the provided JSON.
  • To resolve the error, verify all JSON is valid using a JSON validator (e.g., JSON lint).

RecordValidException

HTTP status code: 422

  • A RecordValidException error indicates that the record you're trying to update or add is invalid. Some common reasons include:
    • A board has exceeded the number of permitted subscribers (400 individual subscribers or 100 teams)
    • A user or team has exceeded the board subscription limit (up to 10,000)
    • A board has exceeded the maximum number of items it can have (varies depending on the plan)
  • To resolve the error, learn about optimizing board subscribers here, unsubscribe from or delete/archive irrelevant boards, or delete items on the board.

ResourceNotFoundException

HTTP status code: 200

  • A 200 ResourceNotFoundException error indicates that the ID you are attempting to pass in your query is invalid.
  • To resolve the error, ensure the ID of the item, group, or board you’re querying exists.

HTTP status code: 404

  • A 404 ResourceNotFoundException error indicates that the ID you are attempting to pass in your query is invalid.
  • To resolve the error, ensure the ID of the user you are querying exists and is assigned to your board.

UserUnauthorizedException

HTTP status code: 403

  • A UserUnauthorizedException error indicates that the user in question does not have the permission to perform the action in question.
  • To resolve the error, check if the user has permission to access or edit the given resource.

📘

Join our developer community!

We've created a community specifically for our devs where you can search through previous topics to find solutions, ask new questions, hear about new features and updates, and learn tips and tricks from other devs. Come join in on the fun! 😎