> For the complete documentation index, see [llms.txt](/llms.txt)

# Error/Exception

Common errors that occur when using Game Server Services.




GS2 responds to errors according to certain rules.
By understanding these rules, you will be able to resolve errors quickly.

**Example of an error message**
```json
[{"component": "progress", "message": "quest.progress.progress.error.notFound"}]
```

| section | description |
| ------------- | --- |
| component | Indicates the target where the error occurred, and contains the member name and method name. |
| message | Details of the error location and keywords that describe the error. `serviceName`.`component`.error.`errorType` |

## Major error types

| major error content | description |
| ------------- | --- |
| failed | Processing failed. |
| invalid | Illegal parameter. |
| require | Missing required argument. |
| tooLong | Argument is too long. |
| tooMany | Too many array elements. |
| exists | Already exists. |
| duplicate | duplicate, already exists. |
| notFound | Not found. |
| notMatch | No match was found. |

## Types of Exceptions

Errors are classified to some extent by SDK, and the type of exception sent out varies.
All exceptions inherit from `Gs2Exception`, and you can determine whether to retry by referring to the following properties:

- **RecommendRetry**: Errors for which a manual retry should be considered, such as displaying a "Retry" button to the user.
- **RecommendAutoRetry**: Errors that are safe for the system to retry automatically without notifying the user.

| Exception | Error Content | Status Code | RecommendRetry | RecommendAutoRetry |
| ---- | ------- | --------------| :---: | :---: |
| BadRequestException | Bad request content. | 400 | | |
| UnauthorizedException | Authentication failed. | 401 | | |
| QuotaLimitExceededException | Quota limit exceeded. | 402 | ✔ | |
| NotFoundException | The object could not be found. | 404 |  | |
| ConflictException | Processing conflict. | 409 | ✔ | |
| InternalServerErrorException | An error occurred on the server. | 500 | ✔ | ✔ |
| BadGatewayException | The server received an invalid response. | 502 | ✔ | ✔ |
| ServiceUnavailableException | A transient error occurred in the service. | 503 | ✔ | ✔ |
| RequestTimeoutException | Request timed out. | 504 | ✔ | ✔ |
| UnknownException | Unknown exception occurred. | | | |

Exceptions where `RecommendRetry` is true are errors that may occur due to server conditions, although the request parameters are normal.
When such errors are detected, it is recommended to retry.

It is strongly recommended to implement a timeout after a certain number of times or a certain amount of time, rather than retrying until success.
When retrying, it is recommended that a sleep be inserted between requests, and that the length of the sleep be increased according to the number of retries.

For errors that require in-game handling, some microservices define error-specific exception types that inherit from the exceptions enumerated for each microservice.
In such cases, error handling can be more easily implemented by using error-specific exceptions.
If there are exceptions that represent error-specific errors, please refer to the method descriptions in the API reference.

### Retrieving Exceptions Occurring on the Client

The GS2-CSharp-SDK and GS2 SDK for Unity allow you to retrieve the error message content that occurred in the game engine/framework used for the connection.

| Exception | Error Content | Status Code |
| ---- | ------- | -------------- |
| NoInternetConnectionException | Failed to connect to the internet.<br>※ Includes connection errors when socket establishment or DNS resolution fails due to the device being in airplane mode, out of range, or connected to a router but unable to exit the network. | 0 |
| 　ConnectionException | (Unity only)　Failed to communicate with the server.<br>Examples include: the request couldn't connect, or a secure channel couldn't be established. | 0 | |
| 　DataProcessingException | (Unity only)　An error occurred during data processing. | 0 |
| 　HttpRequestException | (.NET only)　An error occurred during the HttpRequest. | 0 |

## Chaos mode

GS2 C# SDK and GS2 SDK for Unity include Chaos Mode.
When enabled, chaos mode will randomly emit exceptions that require retries at a specified rate.

By proceeding with development with chaos mode enabled, error handling in the game can be made more robust.
See [initialization process]() for how to enable chaos mode.

## Implementation Guide

For more specific implementation methods and best practices, see [Implementation Patterns for Error Handling]().




- [Implementation Patterns for Error Handling](/articles/tech/error/pattern/)
  
