Skip to content

GitHub OAuth consent screen uses personal ClawdHub app branding #2524

@Patrick-Erichsen

Description

@Patrick-Erichsen

Problem

The GitHub OAuth consent screen for ClawHub sign-in currently presents the app as a personal/unofficial integration:

GitHub OAuth consent screen showing ClawdHub by Peter Steinberger

This is user-facing during web and CLI auth, so it undermines trust at the exact moment users are granting account access.

Evidence

Observed consent copy:

ClawdHub by Peter Steinberger wants to access your <github-login> account

Repo findings:

  • convex/auth.ts configures Convex Auth with the Auth.js GitHub provider.
  • The OAuth app is selected by Convex env vars AUTH_GITHUB_ID and AUTH_GITHUB_SECRET.
  • auth.addHttpRoutes(http) mounts the OAuth endpoints under /api/auth/*.
  • Convex Auth builds the callback URL as (CUSTOM_AUTH_SITE_URL ?? CONVEX_SITE_URL) + "/api/auth/callback/github".
  • Production docs list AUTH_GITHUB_ID, AUTH_GITHUB_SECRET, CONVEX_SITE_URL, and SITE_URL as deploy envs.

Likely root cause

The production AUTH_GITHUB_ID appears to point at a GitHub OAuth App named ClawdHub owned by Peter's personal account instead of an official OpenClaw/ClawHub-owned OAuth App.

This is separate from the GitHub App backup/sync credentials (GITHUB_APP_ID, GITHUB_APP_INSTALLATION_ID, GITHUB_APP_PRIVATE_KEY). Those do not control the user login consent screen.

Expected behavior

The consent screen should show an official ClawHub-owned OAuth app, for example:

ClawHub by OpenClaw wants to access your <github-login> account

Proposed fix

  1. Create or transfer the OAuth App to the official GitHub org/account.
  2. Set the app name to ClawHub.
  3. Set homepage URL to https://clawhub.ai.
  4. Set authorization callback URL to the production Convex auth callback:
    • likely https://wry-manatee-359.convex.site/api/auth/callback/github, unless CUSTOM_AUTH_SITE_URL is intentionally set.
  5. Update Convex production env:
bunx convex env set --prod AUTH_GITHUB_ID <official-client-id>
bunx convex env set --prod AUTH_GITHUB_SECRET
  1. Validate in a fresh/private browser and with CLI auth.

Code/docs pointers

  • convex/auth.ts - GitHub provider and AUTH_GITHUB_ID / AUTH_GITHUB_SECRET usage
  • convex/http.ts - auth.addHttpRoutes(http)
  • CONTRIBUTING.md - local callback URL shape
  • specs/deploy.md - production auth env vars
  • vercel.json - current /api/* rewrite to the Convex site

Metadata

Metadata

Labels

P2Normal backlog priority with limited blast radius.area: securitySecurity, abuse prevention, or trust and safetybugSomething isn't workingclawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.

Type

No type
No fields configured for issues without a type.

Projects

Status
In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions