> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sighting.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting

> Resolve capture, rendering, and delivery problems.

| Symptom                                          | Check                                                                                                              |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
| `npm install sighting` installs unexpected code  | The unscoped name is already occupied. This SDK is named `sightingdev`; install it with `npm install sightingdev`. |
| `ERR_MODULE_NOT_FOUND`                           | Run `npm install sightingdev` in your app and import from `sightingdev`.                                           |
| “Feedback capture runs in the browser”           | Call UI/capture methods after browser mount; in React use `useEffect`.                                             |
| Button does not appear                           | Call `mount()` after `document.body` exists. Check host overlays and CSP errors.                                   |
| Duplicate buttons                                | Keep one client/widget instance per app. Cleanup each instance with `destroy()`.                                   |
| Capture fails                                    | Check unsupported page content/CSS, CORS image restrictions, large viewport/image size and the browser console.    |
| Screenshot differs from the page                 | html2canvas is a DOM renderer. See the rendering limits in [Privacy and capture](/privacy).                        |
| Missing form contents                            | Form fields are intentionally masked in the cloned screenshot.                                                     |
| “Feedback server returned HTTP …”                | The server returned a non-2xx status. Check its validation, authorization, request limit and server logs.          |
| Network failure on an external API               | Verify HTTPS, origin allowlist and any OPTIONS preflight. Errors also need CORS headers.                           |
| Cookie-authenticated endpoint rejects the report | The SDK sends requests with cookies omitted. Use another auth design or customize transport.                       |
| Preview works but the report is not saved        | Confirm the endpoint exists. Installing the SDK does not create a backend route.                                   |
| Successful status but no report                  | The SDK treats any 2xx as accepted. Return non-2xx if server-side acceptance fails.                                |
| Retry creates a duplicate                        | Delivery may have succeeded before the timeout. Add server-side deduplication if required.                         |
| “This feedback client has been destroyed”        | Create a new client after `destroy()`; an old instance cannot be restarted.                                        |

The demo requires access to the source repository and is not included in `node_modules/sightingdev`. Run it from the source folder with `npm ci` followed by `npm run demo`.
