Error Handling

For any API, if error occurs, it should return appropriate HTTP status code. Examples:

  • 401: If user is not authenticated or session is expired

  • 403: If user is authenticated but does not have access to specified resource

  • 404: If the resource user is trying to access is not available

Special handling for error codes:

  • HTTP status code 401: OpsHub will assume that authenticated session has been invalidated and call initialize API to re-login.

  • HTTP status code 403: API should return this code when the API rate limit has been reached. OpsHub will wait for the time to come in <HEADER1> and resume after that, without failing the sync.

Apart from the standard HTTP status code, API should also return the details of the errors if any custom error occurs during the processing of the request.

  • SDK should send end system code if any is returned from the end system.

    • For example: If the validation of the request payload is failed, API can return 400 (Bad Request) response. The error response should also be sent along with the HTTP status.

Error Response Payload

{ 
  "errors": { 
    "code": "system-601", 
    "message": "Missing comment title", 
    "detail": "Title of the comment is required" 
  } 
}

Name

Required

Description

code

True

Error code sent by end system or specific code that SDK wants to send

code

True

Detailed error message as to why API failed

detail

False

It can contain error details like stack trace, end system response, etc. Anything SDK developer feels that will help the user resolve the error

Last updated