If you’re experiencing issues after implementing Eureka events, refer to the following solutions:
Validation Errors
When the request payload is invalid, the API returns a 400 response with details:
{
"status": "ValidationException",
"code": 400,
"message": "Validation Error Occurred",
"validations": [
"Key: 'Search.SearchSessionId' Error:Field validation for 'SearchSessionId' failed on the 'required' tag"
]
}Common Validation Errors
Error Message | Cause | Fix |
|---|---|---|
Event type is required | Missing eventType field | Add "eventType": "search" (or other valid type) |
SearchSessionId failed on the 'required' tag | Missing or empty searchSessionId | Provide a non-empty string without spaces |
Source failed on the 'oneof' tag | Invalid source value | Use one of: search-popup, search-listing, category-listing, brand-listing |
Query failed on the 'non_blank_string' tag | Empty or whitespace-only query | Provide a non-empty search query |
Sorting failed on the 'oneof_sorting' tag | Invalid sorting value | Use one of the valid sorting values |
Platform failed on the 'oneof' tag | Invalid platform value | Use one of: desktop-web, mobile-web, tablet-web, ios, android, other |
IntegrationType failed on the 'oneof' tag | Invalid integration type | Use one of: api, web, app, sdk |
Product.Id failed on the 'required' tag | Missing product ID | Every product must have a non-empty id |
Product.Currency failed on the 'required' tag | Missing currency | Every product must have a non-empty currency |
OrderId failed on the 'required' tag | Missing order ID in purchase | Purchase events require orderId |
AllPurchasedProducts failed on the 'required' tag | Missing product list in purchase | Provide array of all purchased product IDs |
AttributionWindow failed on the 'oneof_attrwindow' tag | Invalid attribution window value | Each value must be a numeric string or "session" |
TraceId failed on the 'required' tag | Missing traceId in page view | product-list-view events require traceId |
ListValue failed on the 'non_blank_string' tag | Empty listValue in page view | Provide the category/brand hierarchy |
CreatedAt failed on the 'required' tag | Missing createdAt in page view | Provide RFC 3339 formatted timestamp |
Authentication Errors
{
"status": "AuthException",
"code": 403,
"message": "Partner token authentication is unsuccessful.",
"validations": null
}Issue | Fix |
|---|---|
Wrong x-auth-token | Verify the token from Inone Settings > Integration Settings. |
Missing x-partner-config-key | Add header in format {partnerId}-{locale}. |
Invalid x-partner-config-key | Verify your Partner ID and locale match yours. |
Source and Dependent Field Errors
The API enforces strict rules on which product fields are allowed based on the source value:
Source | Required Product Field | Must NOT be provided |
|---|---|---|
search-popup | query | listValue |
search-listing | query | listValue |
category-listing | listValue | query |
brand-listing | listValue | query |
Legacy source auto-mapping
Sent Value | Mapped to |
|---|---|
collection-listing | category-listing |
other | search-listing |
product-detail | search-listing |
Empty or invalid | search-listing |
Sorting Values Reference
The sorting field only accepts these predefined values (case-sensitive):
Value | Description |
|---|---|
Relevancy | Default. AI-powered relevance algorithm |
PriceAsc | Price ascending |
PriceDesc | Price descending |
MostPopularFirst | Most popular |
BestRatedFirst | Best rated |
MostRatedFirst | Most rated |
NewestFirst | Newest |
MostFavoriteFirst | Most favorited |
MostDiscountedFirst | Highest discount |
Empty string is also accepted and defaults to Relevancy. Any other value results in a validation error.
Refer to Common Properties for further details.
Attribution Window Reference
Valid values: any numeric string or "session".
Common values: "session", "1", "7", "14", "30", "90"
Rules:
Must be an array with at least 1 value for add-to-cart and purchase events
Each value must not contain spaces
Only include windows that encompass the event timeframe (e.g. if item was added on day 8, send ["14", "30", "90"])
Refer to Common Properties for further details.
Platform Values Reference
Value | Description |
|---|---|
desktop-web | Desktop browser |
mobile-web | Mobile browser |
tablet-web | Tablet browser |
ios | iOS native app |
android | Android native app |
other | Other platforms |
Default Values Applied by the API
When fields are missing or empty, the API applies these defaults automatically:
Field | Default Value | Condition |
|---|---|---|
campId | 999999 | If 0 or not provided |
variationId | 999999 | If 0 or not provided |
userId | "default" | If empty |
sorting | "Relevancy" | If empty (for click, add-to-cart, purchase product-level) |
quantity | 1 | If 0 or negative |
createdAt | Current UTC time (RFC 3339) | If empty or invalid format |
convertedPrice | Same as price | If 0 or not provided |
preferredCurrency | Same as currency | If empty |
The integrationType value "app" is automatically normalized to "api" by the server.
Refer to Common Properties for further details.
Field Fallback Behavior
TraceId and SearchSessionId (Bidirectional Fallback)
For all event types, the API applies a bidirectional fallback:
Scenario | Result |
|---|---|
traceId provided, searchSessionId empty | searchSessionId is set to traceId |
searchSessionId provided, traceId empty | traceId is set to searchSessionId |
Both provided | Both used as-is |
For click, add-to-cart, and purchase events, this fallback works in three layers:
Product-level traceId → Product-level searchSessionId
Product-level searchSessionId → Product-level traceId
Event-level searchSessionId → Product-level traceId and searchSessionId
Position Fallback Chain
Field | If empty, falls back to |
|---|---|
searchPosition | displayPosition → position |
displayPosition | searchPosition chain |
clickPosition | searchPosition → position |
Price Fallback
Field | If empty, falls back to |
|---|---|
convertedPrice | price |
preferredCurrency | currency |
Refer to Common Properties for further details.