Very well explained blog Hetav! I wasn't aware that GraphQL sends status 200 for errors as well. I have used thunkAPI options such as fulfillWithValue and rejectWithValue to return the fulfilled and rejected values respectively. By doing so, you would avoid creating an Error object explicitly.