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

# Troubleshooting the NOCK Widget — Fix Common Issues

> Step-by-step fixes for the most common NOCK widget problems: button not appearing, missing tickets, screenshot failures, empty console logs, and more.

If something isn't working as expected with your NOCK widget, start here. Each section below covers a specific symptom and the most likely fixes. If you work through all the steps and the problem persists, reach out to NOCK support from the Dashboard.

<AccordionGroup>
  <Accordion title="Widget button doesn't appear on the page">
    The feedback button is missing entirely from your site. Here's what to check:

    **1. Confirm the snippet is in the page source.**
    Open your browser's developer tools, go to the **Elements** or **Sources** tab, and search for `nock.js`. If you don't find it, the script tag isn't being loaded on that page. Make sure you've placed the snippet in a layout or template file that applies to every page, not just one specific page.

    **2. Check the script placement.**
    The snippet should be inside the `<body>` element, preferably just before the closing `</body>` tag. A script tag placed in an unexpected location (inside a conditional comment, inside a noscript block, etc.) may not execute.

    **3. Verify your project token.**
    In the NOCK Dashboard, go to **Settings → Widget** and copy your project token. Compare it character-for-character with the `data-token` value in your snippet. Even one wrong character will prevent the widget from initializing.

    **4. Check the browser console for errors.**
    Open your browser's DevTools (**F12** or **Cmd + Option + I** on Mac), switch to the **Console** tab, and reload the page. Look for any errors that mention `nock.js` or that reference a network request that failed. A 404 on the script URL means the `src` attribute is incorrect.

    **5. Check for ad blockers or browser extensions.**
    Some ad blockers and privacy extensions block third-party scripts. Try loading the page in a private/incognito window with all extensions disabled to rule this out.

    <Note>
      If you have **Hidden Mode** enabled, the button is intentionally invisible. Open the widget using the configured keyboard shortcut to confirm it is actually working.
    </Note>
  </Accordion>

  <Accordion title="Tickets are not appearing in the Dashboard">
    Users see the widget and can submit feedback, but tickets aren't showing up in your NOCK Dashboard.

    **1. Confirm the token matches the correct project.**
    Go to **Settings → Widget** in your Dashboard and verify the token shown there is the same one in your script tag. If you have multiple projects, it's easy to accidentally use a token from a different project — in which case tickets are landing there instead.

    **2. Check the project you're viewing.**
    In the Dashboard, confirm the project switcher at the top of the sidebar is set to the project you expect tickets to appear in.

    **3. Submit a test ticket and watch the network tab.**
    Open your browser's DevTools, go to the **Network** tab, submit a piece of feedback through the widget, and look for a request going to `nocknock.cloud`. If the request shows a non-200 status code, there may be a connectivity or configuration issue. Note the status code and error message to share with NOCK support.

    **4. Check your network connection and firewall rules.**
    If you're on a corporate network with strict egress rules, requests to `nocknock.cloud` may be blocked. Try submitting from a different network to confirm.
  </Accordion>

  <Accordion title="Screenshots are not attaching to tickets">
    Users report that their screenshots aren't appearing in tickets, or the attachment fails silently.

    **1. Check browser permissions for screen capture.**
    If users are trying to use the in-widget screen capture button (rather than uploading a file), the browser will prompt for permission to share the screen. If the user dismisses that prompt, no capture is taken. Ask users to accept the screen-sharing permission when prompted.

    **2. Try uploading a file directly instead of capturing.**
    If screen capture specifically fails, users can take a screenshot natively on their device and upload it using the file attachment option in the widget. This path does not require any special browser permission.

    **3. Check the image file size.**
    Very large image files may time out during upload on slow connections. Ask users to try a smaller file (a compressed JPEG or PNG under a few megabytes) to see if the upload succeeds.

    **4. Confirm the browser supports screen capture.**
    Screen capture using the browser API works on modern desktop versions of Chrome, Edge, Firefox, and Safari. On some mobile browsers it is not available. In that case, uploading a device screenshot is the reliable alternative.
  </Accordion>

  <Accordion title="Console logs section is empty on tickets">
    Tickets are coming in but there are no console logs attached, even though you expect there to be errors or warnings.

    **1. Confirm Console Log Capture is enabled.**
    In your Dashboard, go to **Settings → Widget** and check that the **Console Log Capture** toggle is switched on. If it's off, no logs will be collected.

    **2. Check which log levels are selected.**
    Even if capture is enabled, logs will only appear for the levels you've selected (Errors, Warnings, Info, Verbose). If no levels are checked, nothing will be captured. Enable at least **Errors** and **Warnings**.

    **3. Confirm logs are being emitted before the widget opens.**
    NOCK captures logs that were emitted while the widget was loaded on the page. If the errors you expect only happen after a specific user action, make sure that action occurs before the user submits feedback.

    **4. Check that errors aren't being swallowed.**
    If your application catches all exceptions internally and never calls `console.error`, those errors won't appear in the console log capture. Review your error-handling code if you expect errors that aren't showing up.
  </Accordion>

  <Accordion title="AI follow-up questions are not appearing">
    The widget submits immediately without showing any AI-generated follow-up questions after the user writes their message.

    **1. Confirm AI Enhancement is enabled.**
    Go to **Settings → Widget** in your Dashboard and check that the **AI Enhancement** toggle is on. If it's off, the widget skips the follow-up step entirely.

    **2. Check your plan.**
    AI Enhancement is available on specific NOCK plans. If your current plan does not include it, the toggle may be disabled or grayed out. Check the **Billing** section of your Dashboard to see what your plan includes and whether an upgrade is available.

    **3. Confirm you've hit the right code path.**
    AI follow-up questions appear after the user writes a message and proceeds to the next step. If the form is being submitted in a single step without a "next" or "continue" action, the follow-up screen may have been skipped due to a configuration issue — reach out to NOCK support with a screen recording if you suspect this.
  </Accordion>

  <Accordion title="Widget appears on pages where it shouldn't">
    The feedback button is showing up on pages — such as landing pages, login screens, or marketing pages — where you don't want it.

    **1. Check where your snippet is placed.**
    The NOCK script loads on every page that includes it. If your snippet is in a global layout or template, it will appear everywhere. To limit the widget to specific pages or sections, move the snippet to only the templates or layouts that cover those pages.

    **2. Use your framework's conditional rendering.**
    In React, Next.js, Vue, Nuxt, or similar frameworks, you can conditionally render the script tag based on the current route. For example, only include the NOCK `<Script>` component inside your authenticated app layout, not your public marketing layout.

    **3. Check CMS "footer scripts" scope.**
    If you added the snippet via a CMS's global custom code or footer scripts section, it may be injecting on all pages including ones you didn't intend. Look for page-level or section-level script injection in your CMS settings instead.

    <Tip>
      A common pattern is to place the snippet only in the authenticated or "app shell" layout so the widget is available to logged-in users but not on public-facing marketing or login pages.
    </Tip>
  </Accordion>
</AccordionGroup>

<CardGroup cols={2}>
  <Card title="Install via Script Tag" icon="code" href="/widget/install-script-tag">
    Review the full installation guide and framework examples.
  </Card>

  <Card title="Configure the Widget" icon="sliders" href="/widget/configure-widget">
    Check all settings including console logs, AI Enhancement, and hidden mode.
  </Card>
</CardGroup>
