# Implementation Errors

### MissingAccessTokenProviderError

If the implementation of the `accessTokenProvider` method is missing this JavaScript error is thrown and shows up in the browsers developer console. No visual feedback is provided to the user as this is a typical implementation mistake. Please check the reference implementation available at [Access Token Handling](/docs/web-sdk/javascript/snapodds-sport-media/access-token-handling.md#fetch-accesstoken-example).

### InvalidAccessTokenError

In this case, please make sure that the the `response` from the `accessTokenProvider` returns a valid `accessToken` JSON object that contains the following properties:

```
{ 
  access_token: string,
  token_type: string, 
  refresh_token: string, 
  expires_in: number, 
  scope: string 
}
```

As the accessToken is retrieved after the SnapOdds WebComponent has been rendered, the user will be shown an **Integration Error** screen and the error shows up in the browsers developer console. &#x20;

### FetchAccessTokenError

If the promise returned by the `accessTokenProvider` method is rejected or can't be performed due to network problems then this error is thrown.&#x20;

Make sure that your endpoint which provides the accessToken is reachable and check for any network errors in your browsers network tab.

As the accessToken is retrieved after the SnapOdds WebComponent has been rendered, the user will be shown an **Integration Error** screen and the error shows up in the browsers developer console.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.snapodds.com/docs/web-sdk/javascript/implementation-errors.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
