Skip to main content
If Qodo is not posting review comments on your pull requests, this guide walks you through the most common causes. Work through the verification steps in order to rule out each potential cause, or use the table below to jump directly to your symptom.
SymptomStart here
No webhook deliveries in your Git provider logVerification step 1: Wrong endpoint URL or event types not configured
403 Forbidden or 401 Unauthorized in the webhook logVerification step 1: Webhook secret mismatch or missing
Webhook delivers successfully but no review comment appearsVerification step 2: User may not have a paid seat or a linked Git account
Qodo reviews some repositories but not othersVerification step 4: Integration does not have access to the repository
Reviews were working before but have stoppedVerification step 3: Permissions may have changed
Bot-created or draft PRs are skippedVerification step 5: Default behavior. Can be disabled in configuration

Verification steps

Single-tenant and multi-tenant: Follow verification steps 1–5. You do not have access to application logs. If you cannot identify the cause, contact Qodo Support with the PR URL and timestamp.On-premises: Follow verification steps 1–5, then see Check your logs for additional diagnostics.

Verification step 1: Confirm the webhook is reaching Qodo

If your Git provider is not sending webhook events, Qodo will not process the PR. Check your webhook delivery logs: Interpreting the response:
ResponseMeaning
200 OK or 202 AcceptedWebhook received. Continue to Verification step 2.
403 ForbiddenWebhook secret mismatch.
401 UnauthorizedWebhook secret missing, mismatched, or could not be retrieved (GitLab and Azure DevOps). Authentication failure (other providers).
No deliveries listedWrong endpoint URL or event types not configured.
If no deliveries are listed, confirm the required event types are enabled:
EventGitHubGitLabBitbucketAzure DevOps
PR opened or updatedPull requestsMerge request eventsPull requestPull request created or updated
Comments or commandsIssue commentsCommentsPull request comment createdPull request commented on
Push to PR branchPushPush eventsRepository pushCode pushed
If you see a 403 (GitHub or Bitbucket) or 401 (GitLab or Azure DevOps), verify that a webhook secret is configured and matches your Qodo deployment:
  • GitHub: GitHub App settings → Webhook secret
  • GitLab: Webhook settings → Secret token
  • Bitbucket Server: Webhook settings → Secret
  • Azure DevOps: Service hook subscription settings → Webhook secret

Verification step 2: Confirm the user is licensed

Qodo silently skips reviews when either of the following conditions is not met:
  • The user must have a paid seat, either as part of a paid team or with an individual license.
  • The user must have their Git Cloud account linked in the Qodo portal.
Supported providers and plans: GitHub, Bitbucket, and GitLab Cloud on the Teams plan. Enterprise customers should confirm their Git organization ID has been registered with Qodo.
Log into the Qodo portal and confirm:
  1. Your organization has an active subscription.
  2. The PR author is a member of the licensed organization with their Git Cloud account linked.
  3. You are not at or over your monthly review limit. If you are, reviews will be skipped until the next billing cycle.

Verification step 3: Confirm the integration has the required permissions

Qodo requires write access to post comments.
Go to your GitHub App settings → Permissions & events. Confirm:
  • Pull requests: Read & Write
  • Issues: Read & Write
  • Contents: Read
  • Checks: Read & Write (if check run annotations are enabled)
If you recently updated permissions, your organization may need to re-approve them. Check for a pending approval banner under your organization’s Settings → GitHub Apps.
Confirm the access token or PAT used by Qodo has the following scopes:
  • api or read_api
  • write_repository
  • write_merge_requests (if available on your GitLab version)
Confirm the bearer token used by Qodo has:
  • Read and write access to repositories
  • Read and write access to pull requests
Confirm the PAT used by Qodo has:
  • Code: Read & Write
  • Pull Request Threads: Read & Write

Verification step 4: Confirm the integration has access to the repository

Go to your organization’s Settings → GitHub Apps → Qodo → Configure.Under Repository access, confirm the repository is listed, or All repositories is selected. Private repositories require explicit access.
Confirm the webhook is configured at the correct level: project versus group. If using a group webhook, verify it is set to propagate to subgroups and projects.
Webhooks on Bitbucket are configured per repository. Confirm the webhook is set up under the correct repository’s settings, not just at the workspace level.
Service hook subscriptions are project-scoped. Confirm the subscription is configured for the correct project, and that any event filters do not exclude the repository.

Verification step 5: Additional reasons reviews may be skipped

PR opened by a bot Qodo ignores PRs from bot accounts by default (ignore_bot_pr = true) across all supported providers. Detection works by pattern matching on usernames containing bot-, _bot, or [bot]. To disable, set ignore_bot_pr = false in your Qodo configuration. Draft pull requests Qodo skips draft PRs on GitHub and GitLab by default. Set feedback_on_draft_pr = true in the relevant config section ([github_app] for GitHub, [gitlab] for GitLab), or mark the PR as ready for review. GitHub only: API rate limit GitHub enforces hourly API rate limits. If Qodo has exhausted its rate limit, it will skip processing until the limit resets, typically within an hour. Try opening a new PR or re-triggering a review after an hour.

Check your logs

On-premises deployments only. Single-tenant and multi-tenant customers should contact Qodo Support.
Qodo logs are structured JSON. Filter by the PR URL, which is logged as the api_url field on every event:
# Filter by PR URL
grep '"api_url"' /path/to/qodo.log | grep 'api.github.com/repos/your-org/your-repo/pulls/123'
If you have access to a structured log tool such as Loki, CloudWatch, or Datadog, query by field directly:
api_url = "https://api.github.com/repos/your-org/your-repo/pulls/123"

Additional log fields

FieldExample valueUse
api_urlVaries by provider (see table below)Isolate a specific PR.
git_orgyour-orgAll events for an organization.
repoyour-repoAll events for a repository.
senderoctocatEvents triggered by a specific user.
request_idabc123Trace a single webhook event end-to-end.

api_url format by provider

ProviderFormat
GitHub Cloudhttps://api.github.com/repos/<org>/<repo>/pulls/<PR#>
GitHub Serverhttps://<server>/api/v3/repos/<org>/<repo>/pulls/<PR#>
GitLab Cloudhttps://gitlab.com/<org>/<repo>/-/merge_requests/<MR#>
GitLab Serverhttps://<server>/<org>/<group>/-/merge_requests/<MR#>
Bitbucket Cloudhttps://bitbucket.org/<workspace>/<repo>/pull-requests/<PR#>
Bitbucket Serverhttps://<server>/projects/<project>/repos/<repo>/pull-requests/<PR#>
Azure DevOpshttps://dev.azure.com/<org>/<project>/_git/<repo>/pullrequest/<PR#>

Log patterns

Once you have the relevant log lines, look for the following:

Not licensed or not eligible

User {username} is not eligible to trigger auto commands for PR
User {username} is not eligible to comment on PR
Monthly invoke count for '{org}' is {count}, above trial max invokes of 30
Solution: Confirm the organization has an active subscription and the user is a registered member. If the monthly limit is exceeded, upgrade your plan or contact support.

Webhook secret or signature failure

Request signatures didn't match!                  (GitHub, Bitbucket)
Secret mismatch between request and settings      (GitLab)
Secret retrieved does not match stored PAT        (Azure DevOps)
Solution: Re-sync the webhook secret between your Git provider and your Qodo configuration.

Integration not installed on the repository

PR not found, or PR-Agent app is not installed on the repository
Solution: Install or configure the integration to cover the repository. See Verification step 4.

Permission failure

Error getting permissions
Solution: Review the required permissions for your Git provider. See Verification step 3.

Rate limit (GitHub)

Rate limit is too close to the limit, will not proceed
Solution: Wait for the GitHub API rate limit to reset, typically within one hour.

Output suppressed by configuration

Skipping publish_comment since publish_output is disabled
Solution: Set CONFIG.PUBLISH_OUTPUT = true in your Qodo configuration.

Queue workers not running

CRITICAL: No queue workers available! Webhook events will be REJECTED.
Solution: Ensure the configured number of queue workers are running and connected to the queue provider (such as Redis).

Still not working?

Contact Qodo Support with the following:
  • The PR URL.
  • The date and time the PR was opened.
  • Your Git provider: GitHub, GitLab, Bitbucket, or Azure DevOps.
  • Your deployment type: single-tenant, multi-tenant, or on-premises.
  • Any relevant log lines if self-hosted.