When a REST request to FLOW servers is successfully processed, a response with the 200—OK HTTP status code and a JSON body (if relevant) is returned. This document identifies the error codes and messages that FLOW servers return when things don't go as planned. This sample response JSON body demonstrates how an error is communicated:

   “error”: {
      “code”: 400
      “reason”: “invalid_argument”
      “message”: “The value for one of the fields in the request body
                  was invalid."


FLOW errors are listed by their HTTP status codes as defined in RFC 7231. Within the individual status codes, they are listed by the contents of the “reason” field.

304—Not modified

The conditional request would have been successful, but the condition was false, so no body was sent.

400—Bad Request

The API request is invalid or improperly formed. Consequently, the API server could not understand the request.

The value for one of the URI parameters was invalid. In addition to normal URI parameter validation, any URI parameters that have a corresponding value in provided JSON request bodies must match if they are both specified.

Could not parse the body of the request according to the provided Content-Type.

The one or more properties in the request’s JSON body are invalid or missing.

A required URL parameter or required request body JSON property is missing.


The Accept-Version header is missing, or there is a mismatch between the major version of the client and the block, or the client's minor version is lower than the block's. See the related article for more information about the header, API versioning, and how to find out the block's API version.


The provided username or password is invalid.

The provided bearer token in the Authorization header is invalid.

Access to a non-public method that requires that a bearer authentication was made, but none has been provided in the Authorization header. See the related article on how to properly authenticate.

Your session has expired. Log in again to continue. 


According to the access control policy, the current user does not have access to perform the requested action. This code applies even if the resource being acted on doesn't exist.

The account associated with the resource has been disabled.

404—Not Found

Either there is no API method associated with the URL path of the request, or the request refers to one or more resources that were not found.

405—Method Not Allowed

The HTTP verb is not supported by the URL endpoint used in the request. 


A request to change a resource failed to commit the change due to a conflicting concurrent change to the same resource.

In cases where it's important for the client to know the current version of the analytic they are interacting with, a sequence number field is required in the JSON request bodies. A sequence number is basically an analytic's current version that increments every time it is modified. While performing sink data requests, use the current sequence number. While updating an analytic, use a sequence number 1 higher than the current. Learn here how to obtain the current sequence number.

POST method has been used on an existing element of a collection.

413—Payload Too Large

The message body was larger than what FLOW supports.

415—Unsupported Media Type

The request's "Content-Type" header is missing or contains an unsupported format.  

429—Too Many Requests

The usage limit has been exceeded. If your application tries to use more than its limit, additional requests will fail. Throttle your client's requests.

500—Internal Server Error

We encountered an internal error. Please contact us at support@datafromsky.com to help us resolve the situation.

501—Not Implemented

The server does not support the functionality required to fulfill the request at the moment.

Want to learn more? Contact us!

Did this answer your question?