# Error Handling and Troubleshooting

The Verifier and its integration libraries return clear HTTP status codes and JSON error messages when something goes wrong:

**Common Error Codes:**

* **400 Bad Request**: Invalid input, malformed VP queries, or missing parameters.
* **401 Unauthorized**: Missing or invalid `clientSecret`, or expired tokens.
* **403 Forbidden**: The request is not permitted for the given user or flow.
* **404 Not Found**: Non-existent verification requests or invalid endpoints.
* **500 Internal Server Error**: Unexpected issues, configuration errors, or downstream service failures.

**Example Error Response:**

```json
{
  "message": "Invalid request parameters",
  "code": 400
}
```

**Troubleshooting Tips:**

* Validate that your `vpQuery` definitions are correct.
* Check that you are passing the correct state, nonce, and tokens.
* Review server logs for more detailed error traces.
* Ensure that HTTPS is configured correctly and that credentials (e.g., `clientSecret`) are stored securely.

If errors persist, consider reviewing your Verifier configuration, verifying DID resolution, and confirming that the EMPE Blockchain is accessible and stable.
