Skip to content

GitHub Sync Not Working After First Export #197

@stevgon

Description

@stevgon

Environment

All tests were run on https://build.cloudflare.dev/


Steps to Reproduce

  1. Create a new minimal app using the prompt “anonymous single topic message board”
  2. Use the GitHub button to create a new repository (tested with both public and private repos).
  3. Ask for any modification — for example, “make it a chat UI”
  4. Use the GitHub button again to try to sync or commit the changes.

Current Result

Export Failed: GitHub export failed: Repository 'unison' already exists on this account

Observations

  • A few days ago, in the “Sync to GitHub” dialog, I was able to see confirmation text in green indicating that the repo was “in sync” and updates were possible.
  • At that time, I also tested committing changes directly to the repo, and when I tried “Sync to GitHub” again, I received a warning saying my commit would be reverted to allow the sync to proceed.
  • Currently, the sync always fails with the “Repository already exists” error, even for newly created apps.

Debug Information

When clicking the GitHub button to update a repo, the DevTools console logs show:

POST https://build.cloudflare.dev/api/github-app/check-remote
ApiError: No cached GitHub token. Please re-authenticate.
Failed to check remote status: ApiError: No cached GitHub token. Please re-authenticate.

Even if I click the "Sync to GitHub" button anyway and re-authenticate (successfully getting past the auth prompt), I still see:

  • The error: Repository '...' already exists on this account
  • If I attempt the sync again immediately (when the token should still be fresh), the UI briefly shows “Checking sync status...” before disappearing without any visible error message.
  • The DevTools console still logs the same authentication error as before.

Summary

It appears that:

  • The GitHub authentication token is not being cached or reused between sync attempts.
  • After re-authentication, the export process incorrectly detects an existing repository as a conflict, even though the repo is the intended sync target.
  • The UI does not display consistent or persistent error feedback when sync fails after the first attempt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions