Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This document explains about the various error responses the inQuiry micro service currently throws. The intent of this document is to look through the errors and classify it and propose any changes in terms of error reporting.

...

Expand
title400 Bad Request

API Functionality

HTTP Error Code

Existing Error Response

Question Create

400 Bad Request

Code Block
{
    "id": "api.question.create",
    "ver": "3.0",
    "ts": "2023-05-14T14:27:33ZZ",
    "params": {
        "resmsgid": "c34e2d4f-779b-49fc-9d6a-db4466c8de3a",
        "msgid": null,
        "err": "CLIENT_ERROR",
        "status": "failed",
        "errmsg": "Validation Errors"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": [
            "Required Metadata name not set"
        ]
    }
}

Question Create

400 Bad Request

Code Block
{
    "id": "api.question.create",
    "ver": "3.0",
    "ts": "2023-05-14T14:26:17ZZ",
    "params": {
        "resmsgid": "e45e51ca-8c4e-4585-ab03-75ab8b131bb5",
        "msgid": null,
        "err": "CLIENT_ERROR",
        "status": "failed",
        "errmsg": "Validation Errors"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": [
            "Required Metadata code not set"
        ]
    }
}

Question Create

400 Bad Request

Code Block
{
    "id": "api.question.create",
    "ver": "3.0",
    "ts": "2023-05-14T14:26:27ZZ",
    "params": {
        "resmsgid": "0020dd04-65ad-4e8a-9194-bb927025d3e0",
        "msgid": null,
        "err": "CLIENT_ERROR",
        "status": "failed",
        "errmsg": "Validation Errors"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": [
            "Required Metadata mimeType not set"
        ]
    }
}

Question Create

400 Bad Request

Code Block
{
    "id": "api.question.create",
    "ver": "3.0",
    "ts": "2023-05-14T14:51:49ZZ",
    "params": {
        "resmsgid": "3814749d-47a0-4e38-a040-6d32e8e4cbcf",
        "msgid": null,
        "err": "CLIENT_ERROR",
        "status": "failed",
        "errmsg": "Validation Errors"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": [
            "Required Metadata primaryCategory not set"
        ]
    }
}

Question Create

400 Bad Request

Code Block
{
    "id": "api.question.create",
    "ver": "3.0",
    "ts": "2023-05-14T14:26:35ZZ",
    "params": {
        "resmsgid": "4ab85c6e-3ee4-4dc3-bcbf-0292b734dfdc",
        "msgid": null,
        "err": "CLIENT_ERROR",
        "status": "failed",
        "errmsg": "Validation Errors"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": [
            "Metadata mimeType should be one of: [application/vnd.sunbird.question]"
        ]
    }
}

Question Update

400 Bad Request

Code Block
{
    "id": "api.question.update",
    "ver": "3.0",
    "ts": "2023-05-14T14:29:03ZZ",
    "params": {
        "resmsgid": "d43a4913-d662-4a8a-8859-9add9a04da52",
        "msgid": null,
        "err": "CLIENT_ERROR",
        "status": "failed",
        "errmsg": "Invalid version Key"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question Review

400 Bad Request

Code Block
{
    "id": "api.question.review",
    "ver": "3.0",
    "ts": "2023-05-14T14:30:20ZZ",
    "params": {
        "resmsgid": "fd89269b-36f9-4673-8af4-db41b5f60716",
        "msgid": null,
        "err": "ERR_MANDATORY_FIELD_VALIDATION",
        "status": "failed",
        "errmsg": "Mandatory Fields [body] Missing for do_21379593928588492814142"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question Review

400 Bad Request

Code Block
{
    "id": "api.question.review",
    "ver": "3.0",
    "ts": "2023-05-14T14:30:24ZZ",
    "params": {
        "resmsgid": "851c2874-e6fe-42b0-8c4f-67c234154bc8",
        "msgid": null,
        "err": "ERR_MANDATORY_FIELD_VALIDATION",
        "status": "failed",
        "errmsg": "Mandatory Fields [responseDeclaration] Missing for do_21379593932446105614143"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question Review

400 Bad Request

Code Block
{
    "id": "api.question.review",
    "ver": "3.0",
    "ts": "2023-05-14T14:30:29ZZ",
    "params": {
        "resmsgid": "23ee2a5c-6ad7-4bae-80c2-94d42f82546d",
        "msgid": null,
        "err": "ERR_MANDATORY_FIELD_VALIDATION",
        "status": "failed",
        "errmsg": "Mandatory Fields [interactions] Missing for do_21379593936168550414144"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question Review

400 Bad Request

Code Block
{
    "id": "api.question.review",
    "ver": "3.0",
    "ts": "2023-05-14T14:30:34ZZ",
    "params": {
        "resmsgid": "3de1955f-c480-4903-ba17-05e59cf2dc43",
        "msgid": null,
        "err": "ERR_MANDATORY_FIELD_VALIDATION",
        "status": "failed",
        "errmsg": "Mandatory Fields [answer] Missing for do_21379593940282572814145"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question Publish

400 Bad Request

Code Block
{
    "id": "api.question.publish",
    "ver": "3.0",
    "ts": "2023-05-14T14:30:56ZZ",
    "params": {
        "resmsgid": "3c82e765-b5e0-4fec-8e5e-87d66f60b323",
        "msgid": null,
        "err": "ERR_MANDATORY_FIELD_VALIDATION",
        "status": "failed",
        "errmsg": "Mandatory Fields [body] Missing for do_21379593958717030414146"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question Publish

400 Bad Request

Code Block
{
    "id": "api.question.publish",
    "ver": "3.0",
    "ts": "2023-05-14T14:31:00ZZ",
    "params": {
        "resmsgid": "e54e1b92-98a8-46bb-a27c-f9790dffd713",
        "msgid": null,
        "err": "ERR_MANDATORY_FIELD_VALIDATION",
        "status": "failed",
        "errmsg": "Mandatory Fields [responseDeclaration] Missing for do_21379593961955328014147"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question Publish

400 Bad Request

Code Block
{
    "id": "api.question.publish",
    "ver": "3.0",
    "ts": "2023-05-14T14:31:04ZZ",
    "params": {
        "resmsgid": "80ab8746-8455-4d62-9bf9-886bd38851d8",
        "msgid": null,
        "err": "ERR_MANDATORY_FIELD_VALIDATION",
        "status": "failed",
        "errmsg": "Mandatory Fields [interactions] Missing for do_21379593964663603214148"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question Publish

400 Bad Request

Code Block
{
    "id": "api.question.publish",
    "ver": "3.0",
    "ts": "2023-05-14T14:31:07ZZ",
    "params": {
        "resmsgid": "7ec01a2a-3e35-46d7-8385-0dcc81780708",
        "msgid": null,
        "err": "ERR_MANDATORY_FIELD_VALIDATION",
        "status": "failed",
        "errmsg": "Mandatory Fields [answer] Missing for do_21379593967552921614149"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question List

400 Bad Request

Code Block
{
    "id": "api.questions.list",
    "ver": "3.0",
    "ts": "2023-05-14T14:31:29ZZ",
    "params": {
        "resmsgid": "f76b3bb2-05f0-428a-b0ee-113609f12b6f",
        "msgid": null,
        "err": "ERR_BAD_REQUEST",
        "status": "failed",
        "errmsg": "Request contains invalid identifiers : [do_list_abc_123]."
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question List

400 Bad Request

Code Block
{
    "id": "api.questions.list",
    "ver": "3.0",
    "ts": "2023-05-14T14:31:34ZZ",
    "params": {
        "resmsgid": "9edb0e68-8a15-4219-a92a-902efcc786ee",
        "msgid": null,
        "err": "ERR_BAD_REQUEST",
        "status": "failed",
        "errmsg": "Request contains invalid identifiers : [do_list_abc_234, do_list_abc_123]."
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question Import

400 Bad Request

Code Block
{
    "id": "api.question.import",
    "ver": "3.0",
    "ts": "2023-05-14T14:32:00ZZ",
    "params": {
        "resmsgid": "b71e805f-5341-4e56-93ed-9f57fd293864",
        "msgid": null,
        "err": "ERR_REQUIRED_PROPS_VALIDATION",
        "status": "failed",
        "errmsg": "Validation Failed! Mandatory Properties Are [\"name\",\"code\",\"mimeType\",\"framework\",\"channel\"] | Required Property's Missing For [fb1aef22-88e4-4f91-8055-6086bf338bf1]"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question Import

400 Bad Request

Code Block
{
    "id": "api.question.import",
    "ver": "3.0",
    "ts": "2023-05-14T14:32:09ZZ",
    "params": {
        "resmsgid": "6a19eeec-b742-4057-a782-c5c1a6a73695",
        "msgid": null,
        "err": "ERR_READ_SOURCE",
        "status": "failed",
        "errmsg": "Received Invalid Response While Reading Data From Source. Response Code is : RESOURCE_NOT_FOUND"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

Question Reject

400 Bad Request

Code Block
{
    "id": "api.question.reject",
    "ver": "3.0",
    "ts": "2023-05-14T14:32:19ZZ",
    "params": {
        "resmsgid": "1acd73e6-d400-492e-abf5-5654c3425934",
        "msgid": null,
        "err": "ERR_QUESTION_REJECT",
        "status": "failed",
        "errmsg": "Question is not in 'Review' state for identifier: do_21379594026542694414151"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

QuestionSet Create

400 Bad Request

Code Block
{
    "id": "api.questionset.create",
    "ver": "3.0",
    "ts": "2023-05-14T14:32:44ZZ",
    "params": {
        "resmsgid": "9ce43dcc-49c6-4b19-9285-1e4019bfbf30",
        "msgid": null,
        "err": "CLIENT_ERROR",
        "status": "failed",
        "errmsg": "Validation Errors"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": [
            "Required Metadata name not set"
        ]
    }
}

QuestionSet Create

400 Bad Request

Code Block
{
    "id": "api.questionset.create",
    "ver": "3.0",
    "ts": "2023-05-14T14:32:53ZZ",
    "params": {
        "resmsgid": "6ac7f1cc-a41a-4bf4-a5f7-49f16beece82",
        "msgid": null,
        "err": "CLIENT_ERROR",
        "status": "failed",
        "errmsg": "Validation Errors"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": [
            "Required Metadata code not set"
        ]
    }
}

QuestionSet Create

400 Bad Request

Code Block
{
    "id": "api.questionset.create",
    "ver": "3.0",
    "ts": "2023-05-14T14:32:56ZZ",
    "params": {
        "resmsgid": "6a4dc627-3593-49d5-adcf-d0c0a077cff6",
        "msgid": null,
        "err": "CLIENT_ERROR",
        "status": "failed",
        "errmsg": "Validation Errors"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": [
            "Required Metadata mimeType not set"
        ]
    }
}

QuestionSet Update

200 OK

??

QuestionSet Update Hierarchy

400 Bad Request

Code Block
{
    "id": "api.questionset.hierarchy.update",
    "ver": "3.0",
    "ts": "2023-05-14T14:33:44ZZ",
    "params": {
        "resmsgid": "948bf8e0-c33c-40ed-8e69-fdecace00b7d",
        "msgid": null,
        "err": "ERR_INVALID_ROOT_ID",
        "status": "failed",
        "errmsg": "Please Provide Valid Root Node Identifier"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

QuestionSet Review

400 Bad Request

Code Block
{
    "id": "api.questionset.review",
    "ver": "3.0",
    "ts": "2023-05-14T14:34:05ZZ",
    "params": {
        "resmsgid": "f90d747b-be39-4fad-992c-c5e2c8575806",
        "msgid": null,
        "err": "ERR_MANDATORY_FIELD_VALIDATION",
        "status": "failed",
        "errmsg": "Mandatory Fields [responseDeclaration] Missing for do_21379594112953548814163"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

QuestionSet Publish

400 Bad Request

Code Block
{
    "id": "api.questionset.publish",
    "ver": "3.0",
    "ts": "2023-05-14T14:34:33ZZ",
    "params": {
        "resmsgid": "25552ef2-1af5-4bbb-80cb-d68b8f229b1f",
        "msgid": null,
        "err": "ERR_MANDATORY_FIELD_VALIDATION",
        "status": "failed",
        "errmsg": "Mandatory Fields [responseDeclaration] Missing for do_21379594136426086414168"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

QuestionSet Retire

400 Bad Request

Code Block
{
    "id": "api.questionset.retire",
    "ver": "3.0",
    "ts": "2023-05-14T14:35:05ZZ",
    "params": {
        "resmsgid": "b2e2a370-dee4-47cb-8fe6-a250cdc70f7c",
        "msgid": null,
        "err": "ERR_QUESTION_SET_RETIRE",
        "status": "failed",
        "errmsg": "QuestionSet with identifier : do_21379594162091622414177 is already Retired."
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

QuestionSet Reject

400 Bad Request

Code Block
{
    "id": "api.questionset.reject",
    "ver": "3.0",
    "ts": "2023-05-14T14:38:57ZZ",
    "params": {
        "resmsgid": "ff2aac33-c257-487a-85a8-b44a013e2f71",
        "msgid": null,
        "err": "ERR_QUESTION_SET_REJECT",
        "status": "failed",
        "errmsg": "QuestionSet is not in 'Review' state for identifier: do_21379594343893401614182"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

QuestionSet Import

400 Bad Request

Code Block
{
    "id": "api.questionset.import",
    "ver": "3.0",
    "ts": "2023-05-14T14:39:31ZZ",
    "params": {
        "resmsgid": "b8a1999b-5893-4ef5-801d-b7c73813119f",
        "msgid": null,
        "err": "ERR_REQUIRED_PROPS_VALIDATION",
        "status": "failed",
        "errmsg": "Validation Failed! Mandatory Properties Are [\"name\",\"code\",\"mimeType\",\"framework\",\"channel\"] | Required Property's Missing For [4f85db76-f8c4-41d0-b45c-a8cadba2f618]"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

QuestionSet Import

400 Bad Request

Code Block
{
    "id": "api.questionset.import",
    "ver": "3.0",
    "ts": "2023-05-14T14:39:36ZZ",
    "params": {
        "resmsgid": "45cd3ffc-205e-44cd-8017-40804711aa2a",
        "msgid": null,
        "err": "ERR_READ_SOURCE",
        "status": "failed",
        "errmsg": "Received Invalid Response While Reading Data From Source. Response Code is : RESOURCE_NOT_FOUND"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

QuestionSet Add Children

400 Bad Request

Code Block
{
    "id": "api.questionset.add",
    "ver": "3.0",
    "ts": "2023-05-14T14:39:44ZZ",
    "params": {
        "resmsgid": "6f0aa0d2-6d4a-4788-8a22-0c68d8bb841a",
        "msgid": null,
        "err": "ERR_BAD_REQUEST",
        "status": "failed",
        "errmsg": "children are mandatory"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

QuestionSet Remove Children

400 Bad Request

Code Block
{
    "id": "api.questionset.remove",
    "ver": "3.0",
    "ts": "2023-05-14T14:40:01ZZ",
    "params": {
        "resmsgid": "242d2006-4e0e-49d8-8edd-725e68fd6a16",
        "msgid": null,
        "err": "ERR_BAD_REQUEST",
        "status": "failed",
        "errmsg": "children are mandatory"
    },
    "responseCode": "CLIENT_ERROR",
    "result": {
        "messages": null
    }
}

...

Expand
titleSample error structure
Code Block
{
  "errors": [
    {
      "code":   "1000",
      "source": { "pointer": "/name" },
      "title":  "Name not set",
      "detail": "Required Metadata name not set."
    },
    {
      "code":   "1001",
      "source": { "pointer": "/code" },
      "title": "Code not set.",
      "detail": "Required Metadata code not set."
    },
    {
      "code":   "1002",
      "source": { "pointer": "/mimeType" },
      "titledetail": "Required Metadata mimeType not set."
    }
  ]
}

...

Expand
titleSample error structure
Code Block
{
  "errors": {
      "name" : "Required Metadata name not set.",
      "code" : "Required Metadata code not set.",
      "mimeType" : "Required Metadata mimeType not set."
    }
}

Code Block
throw new ClientException("ERR_API_CALL", "Something Went Wrong While Making API Call | Error is: " + e.getMessage(), map());

One limitation with this approach is if there are multiple errors to be returned on the same field, then it becomes difficult.

<<Add >>

Error Category

Error Sub Category

Error Code

Scenarios Applicable

ERROR_INVALID_REQUEST

ERROR_MANDATORY_FIELD_VALIDATION

1000

  • <<Sample from >>

ERROR_INVALID_REQUEST

ERROR_INVALID_PROPERTY

1001

  • Sending a property not recognised by the micro service

  • Invalid data type sent for the property