> For the complete documentation index, see [llms.txt](https://docs.duku.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.duku.ai/integrations/github-actions/troubleshooting.md).

# Troubleshooting

Use these checks first when a workflow starts but the results are not what you expect.

### Preview run fails with "Resolving the preview URL requires a github-token" or the status PR comment never appears

Pass `github-token: ${{ github.token }}` in the action's `with:` block and grant `pull-requests: write` in the job's `permissions:` block.

The action does not receive the GitHub token automatically.

### The running PR comment appears but never updates with results

Install the [Duku AI GitHub App](https://github.com/apps/duku-ai) on the repository.

The App posts the initial running comment server-side. It also posts the final results update.

Results still appear in Viewport even if the comment never updates.

### 403 when posting the PR comment

Grant `pull-requests: write` in the job `permissions:` block.

You can also set **Settings → Actions → General → Workflow permissions** to **Read and write**.

### The preview action cannot find a preview URL

Confirm that your hosting provider creates a GitHub Deployment for the pull request.

If it does not, set `preview-url-source: comments` and set `preview-comment-author-logins` to your deployment bot, such as `vercel[bot]`.

If you already know the URL, pass `exploration-url` directly.

### The workflow does not trigger

Place the workflow file under `.github/workflows/`.

Check that the `branches:` list matches the branch you actually merge into or deploy from.

### Secrets not found or pull requests from forks fail

Pull requests from forks cannot read repository secrets.

Duku previews require a pull request from a branch in the same repository.

### The exploration runs but finds nothing or cannot reach the app

If your app sits behind a firewall, WAF, or bot manager, allowlist Duku's egress IPs.

Use [Firewall & WAF Allowlisting](/integrations/firewall-and-waf-allowlisting.md) to configure the allowlist.

### Read next

* [CI integration with GitHub Actions](/integrations/github-actions/ci-integration-with-github-actions.md)
* [Configuration reference](/integrations/github-actions/configuration-reference.md)
