API Error Codes

Below you can find the complete list of errors that are returned by the API together with the description, API code, and corresponding HTTP status of each error.

NameHTTP Status CodeHTTP StatusStream CodeDescription
Input Error400Bad Request4When wrong data/parameter is sent to the API
Duplicate Username Error400Bad Request6When a duplicate username is sent while enforce_unique_usernames is enabled
Message Too Long Error400Bad Request20Message is too long
Event Not Supported Error400Bad Request18Event is not supported
Channel Feature Not Supported Error400Bad Request19The feature is currently disabled on the dashboard (i.e. Reactions & Replies)
Multiple Nesting Level Error400Bad Request21Multiple Levels Reply is not supported - the API only supports 1 level deep reply threads
Custom Command Endpoint Call Error400Bad Request45Custom Command handler returned an error
Custom Command Endpoint Missing Error400Bad Request44App config does not have custom_action_handler_url
Authentication Error401Unauthorised5Unauthenticated, problem with authentication
Authentication Token Expired401Unauthorised40Unauthenticated, token expired
Authentication Token Before Issued At401Unauthorised42Unauthenticated, token date incorrect
Authentication Token Not Valid Yet401Unauthorised41Unauthenticated, token not valid yet
Authentication Token Signature Invalid401Unauthorised43Unauthenticated, token signature invalid
Access Key Error401Unauthorised2Access Key invalid
Not Allowed Error403Forbidden17Unauthorised / forbidden to make request
App Suspended Error403Forbidden99App suspended
Cooldown Error403Forbidden60User tried to post a message during the cooldown period
Does Not Exist Error404Not Found16Resource not found
Request Timeout Error408Request Timeout23Request timed out
Payload Too Big Error413Request Entity Too Large22Payload too big
Rate Limit Error429Too Many Requests9Too many requests in a certain time frame
Maximum Header Size Exceeded Error431Request Header Fields Too Large24Request headers are too large
Internal System Error500Internal Server Error-1Triggered when something goes wrong in our system
No Access to Channels403Unauthorised70No access to requested channels
Message Moderation Failed400Bad Request73Message did not pass moderation

Common Errors Explained

This section explains how to solve common API errors.

GetOrCreateChannel failed

The full error you receive is “GetOrCreateChannel failed with error: “either data.created_by or data.created_by_id must be provided when using server side auth.” with error code 4. This error is only triggered when using server side authentication.

You can encounter this error when calling channel.watch(), channel.create() or channel.query(). All three methods call get or create a channel. There are two possible causes for this error:

1. You are trying to watch a channel that hasn’t been created

You are expecting that the channel is already created. For instance if you have the following code:

const serverClient = new StreamChat("key", "secret");
const channel = serverClient.channel("messaging", 123);
channel.watch();

The above code works well if the channel with cid messaging:123 already exists. If it doesn’t exist yet it will throw the above error. So you can get this error when calling channel.watch if another part of your code failed to create the channel.

2. You want to create a channel but forgot the created_by_id param

If you’re actually intending to create a channel in this part of your code you need to specify the user as follows:

const serverClient = new StreamChat("key", "secret");
// create the channel and set created_by to user id 4645
const channel = serverClient.channel("messaging", "123", {
  created_by_id: "4645",
});
channel.create();