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.