Errors
HTTP errors
If you send a request to a valid URI, and the request contains properly formatted JSON, you should always receive a response with the status 200 (OK) and a JSON formatted response. The OMA requests always result in one of the following response codes:
Error code | |
---|---|
200 | OK, the response to the request follows in the response body. |
400 | Bad Request. The request contained badly formatted JSON or was otherwise badly formatted. |
404 | Not Found. Non-existent method requested. |
500 | Internal Server Error. Something went terribly wrong and it's not the user's fault. |
API errors
For methods that deal with multiple objects, for example restore_deleted_messages, the response contains an array of objects, and each object has its own success and potentially error and error_number fields. In that case, you may see one of the following error response codes:
Error code | Error text | Meaning |
---|---|---|
0 | Server error. | Returned when something goes wrong and it is not the client's fault. |
1 | Invalid credentials supplied in request. | Returned when the user name or password is not valid. |
2 | The requested object does not exist. | Returned when the object (user, domain, brand, etc) being queried, changed or deleted does not exist. |
3 | This object is an alias. | Returned when the name of an object to be changed in a request is an alias or an object. Objects can only be changed via their real name. |
4 | Requestor lacks permission to change one or more of the requested attributes. | Returned when the request specifies a change to an attribute that the user does not have permission to change. |
5 | Request badly formatted (missing required field, or field is not the correct data type). | Returned when the request is not properly formatted. |
6 | One or more attributes badly formatted. | Returned when the request to change an object contains an unrecognized attribute or an attribute value that is not well formatted. For example, the value of the key filter might not be a valid number. |
7 | An object with this name already exists. | Returned when the request to create an object names an object that already exists. |
8 | An object with this name already exists. | Returned when the request to create an object names an object that already exists. |
9 | Requestor does not own this object or lacks permission to perform this action. | Returned when the user lacks permission to perform the requested action. |
10 | The requested object is not empty. | Returned when the request asks to delete an object, but the object is not empty (for example to delete a domain but the domain contains users). |
11 | Company does not exist. | Returned with the company containing an object to be changed (domain, brand) does not exist. |
12 | Role does not exist | Returned when attempting to add a non-existent role to a user. |
13 | User does not exist | Returned when attempting to do something with a user (post a bulletin to a test user) and that user does not exist. |
14 | Brand in use | Returned when attempting to delete a brand, and that brand is assigned to a user, domain or company. |
15 | Domain users full | Returned when attempting to create a user, and the user's domain is at its user limit. |
16 | Domain aliases full | Returned when attempting to create an alias to a user and the domain is at its alias limit. |
17 | Not in | Returned when an operation requires a user to be an member of something and the user is not. |
18 | Workgroup is default | Returned when attempting to delete a workgroup that is the domain's default workgroup. |
19 | Migration Job Exists | Returned when attempting to create a new migration job, and a migration job with the given ID already exists. |
20 | Try again later | A transient system error occurred. Not the caller's fault. Method should be retried. |
21 | Requestor not permitted from this IP address | IP restrictions have been set for this admin user and the source IP does not match them. |
22 | Requested object temporarily unavailable, try again later | Temporary error, please retry in a few minutes. |
23 | Object already exists | If object already exists and create_only attribute was passed in the request. |
24 | Admins exist that control this object | |
25 | Failed to obtain provisioning lock | Temporary error, please retry in a few minutes. |
26 | The requested folder does not exist | |
27 | The domain is missing the filtermx setting | |
28 | An internal error occurred | If error persists, please contact OpenSRS support |
29 | An internal error occurred - failed to connect | If error persists, please contact OpenSRS support |
30 | An internal error occurred - failed to send | If error persists, please contact OpenSRS support |
31 | User was not type filter | |
32 | Admin is disabled | |
33 | 2FA is required | Returned when second stage Two-Factor Authentication credentials are required |
34 | password must be at least 10 characters | Returned when using reseller_id credentials during 2FA signup if password is not deemed secure enough |
35 | 2fa code validation failure | Returned when second stage 2FA credentials are incorrect |
36 | password cannot be one of the previous 8 used | Returned when using reseller_id credentials during 2FA signup and new password was previously used |
37 | Alias domain does not exist | |
38 | maximum number of forward recipients reached | Returned when trying to set more forward recipients than allowed on an account. |
39 | expired | |
40 | Password not strong enough | Returned when a user's password fails the password strength check (see change_user) |
41 | Password on the ban list | Returned when a user's password fails the password banned check |
42 | 2FA is required, not enabled on this account | Returned during authentication when 2FA is forced for user, user has not enabled it, and user is out of grace logins. |
43 | 2FA challenge failed | Returned when second stage 2FA credentials are incorrect |
44 | 2FA Auth required to change 2fa_required_oma | Attribute can only be changed when user authenticated with 2FA |
45 | Brand settings prevent this action | |
46 | Max number of App Passwords has been reached | Target user has reached maximum (4) number of App Passwords. |
47 | Target is a domain alias | Cannot rename a user into a domain alias; can only rename the user into the true domain name. |
48 | Password rejected - contains username or other account info | Returned when a user's password fails the password contains check (see change_user) |
49 | Push denied. Gaining company has not pre-authorized | Attempted to push a domain to a company that has not authorized this company to push domains to it. |
Updated less than a minute ago