Error handling
Epsilon Retail Media Partner APIs follow a structured and consistent error handling approach. This ensures that error responses are predictable, easy to parse, and helpful for debugging.
Error response structure
When an error occurs, the API returns:
A standard HTTP status code.
A structured JSON body with a code, message, and optional details field.
A list of field-level violations (if applicable), allowing clients to fix multiple issues in one go.
Basic strategies for handling errors
When you encounter an error, follow these steps:
Read the error message carefully - The error response provides specific information about what went wrong and which field caused the issue.
Review the endpoint page - If you're unsure how to proceed, review the specific page for the endpoint you are using.
Contact Support - If you continue to experience issues, you can raise a case in our Support Portal. Please provide:
The exact API call you are making.
The specific retailer and team.
The specific entity you are creating/updating.
The complete error response you are seeing.
This information will ensure our team can assist you efficiently and effectively.
Single violation example
Multiple violations example
Standard HTTP status codes
200 OK
Request succeeded
Successful API call
204 No Content
Success, no response body
Successful request with no return payload
400 Bad Request
Invalid input
Malformed request or validation failure
401 Unauthorized
Missing or invalid token
Token not provided or expired
403 Forbidden
Access denied
Token valid but lacks permission
404 Not Found
Resource not found
Invalid endpoint or resource ID
409 Conflict
Duplicate or conflicting data
Resource already exists or violates constraints
429 Too Many Requests
Rate limit exceeded
Too many requests in a short time
500 Internal Server Error
Server-side issue
Unexpected error on the server
503 Service Unavailable
Temporary outage
Service is down or under maintenance
gRPC to HTTP error code mapping
0
OK
200
OK
1
CANCELLED
499
Client Closed Request
2
UNKNOWN
500
Internal Server Error
3
INVALID_ARGUMENT
400
Bad Request
4
DEADLINE_EXCEEDED
504
Gateway Timeout
5
NOT_FOUND
404
Not Found
6
ALREADY_EXISTS
409
Conflict
7
PERMISSION_DENIED
403
Forbidden
8
RESOURCE_EXHAUSTED
429
Too Many Requests
9
FAILED_PRECONDITION
400
Bad Request
10
ABORTED
409
Conflict
11
OUT_OF_RANGE
400
Bad Request
12
UNIMPLEMENTED
501
Not Implemented
13
INTERNAL
500
Internal Server Error
14
UNAVAILABLE
503
Service Unavailable
15
DATA_LOSS
500
Internal Server Error
16
UNAUTHENTICATED
401
Unauthorized

