Catching errors
A widget reports a problem as an oddsrelay:error event on its element. The event bubbles, so one listener on the document catches every widget on the page.
The event's detail holds the code, the message the visitor sees, whether the call is retryable and a link to the code's row below. When the feed refused the call, e.detail.status holds its HTTP status. Log it too: one code can stand for more than one refusal.
document.addEventListener("oddsrelay:error", function (e) {
console.warn(e.detail.code, e.detail.status, e.detail.message, e.detail.docs);
});Every code
Only OR-2001 and OR-2002 are retryable: the same call may work next time. Each row quotes the message your visitors see, then says what to do about it.
OR-1101- “This domain is not on the widget key's allow-list.”
The browser reports it as a CORS error. Send us the page's exact origin (scheme, host and port) to add to the key.
https://example.comandhttps://www.example.comare two entries. OR-1102- “The widget key is invalid or has been revoked.”
Check that
data-or-keyholds the key exactly as we issued it. A revoked key stays revoked, so ask us for a new one. Ife.detail.statusis 400 the key is fine and the feed refused a value:data-or-regiontakes one lowercase code, such asuk, and every filter takes a key the feed knows. OR-1103- “The widget key is not scoped to this region.”
The feed refused the call (HTTP 403). The region, the feed, a bookmaker in the filters or this page's address is outside the key, or the account is suspended. Check
data-or-region, then send us the page's address. OR-1104- “The widget key is not scoped to this feed.”
The key is fine: the feed doesn't serve the region in
data-or-region(HTTP 404). Set it to a region the key covers. OR-1105- “This key has used its request allowance for now.”
The key is out of tokens (HTTP 402) or over its rate limit (HTTP 429). Ask us to raise its allowance.
OR-1201- “The page's content security policy blocked the widget stylesheet.”
Your page's policy dropped the widget's styles. Allow them in
style-srcas the CSP page shows. OR-2001Retryable- “Couldn't reach the live feed.”
The feed timed out or returned a server error. Nothing to change on your side: with polling on, the widget tries again by itself.
OR-2002Retryable- “The browser is offline.”
The visitor's device has no connection. Nothing to change on your side.
OR-3001- “No opportunities match these filters right now.”
Not a fault: the call worked and nothing matched. Widen the filters to see more rows.
OR-9001- “The widget could not be rendered.”
Something failed inside the widget. Send us the code, the page address and the browser you used.
If a code isn't listed or the fix didn't work, contact us with the code and the page's address.