There will be errors when working with the API, and they must be correctly handled on the client.
An error is characterized by several parameters:
Similar to HTTP status. Contains information on the type of error that occurred: for example, a data input error, privacy error, or server error. This is a required parameter.
A string literal in the form of
/[A-Z_0-9]+/, which summarizes the problem. For example,
AUTH_KEY_UNREGISTERED. This is an optional parameter.
May contain more detailed information on the error and how to resolve it, for example: authorization required, use auth.* methods. Please note that the description text is subject to change, one should avoid tying application logic to these messages. This is an optional parameter.
There should be a way to handle errors that are returned in rpc_error constructors.
If an error constructor does not differentiate between type and description but instead contains a single field called error_message (as in the example above), it must be split into 2 components, for example, using the following regular expression:
Below is a list of error codes and their meanings:
The request must be repeated, but directed to a different data center.
In all these cases, the error description’s string literal contains the number of the data center (instead of the X) to which the repeated query must be sent.
More information about redirects between data centers »
The query contains errors. In the event that a request was created using a form and contains user generated data, the user should be notified that the data must be corrected before the query is repeated.
There was an unauthorized attempt to use functionality available only to authorized users.
Privacy violation. For example, an attempt to write a message to someone who has blacklisted the current user.
An attempt to invoke a non-existent object, such as a method.
The maximum allowed number of attempts to invoke the given method with the given input parameters has been exceeded. For example, in an attempt to request a large number of text messages (SMS) for the same phone number.
An internal server error occurred while a request was being processed; for example, there was a disruption while accessing a database or file storage.
If a client receives a 500 error, or you believe this error should not have occurred, please collect as much information as possible about the query and error and send it to the developers.
If a server returns an error with a code other than the ones listed above, it may be considered the same as a 500 error and treated as an internal server error.