Drama GitHub App Cloudflare 404
Cerita frustrasi: GitHub App Cloudflare error 404, berjam-jam debugging, sampai akhirnya nemu solusi pakai GitHub Actions + Wrangler.
Cerita hari ini: error 404 saat install GitHub App Cloudflare. Berjam-jam muter-muter. Ujung-ujungnya nemu solusi yang lebih baik.
Awal Mula
Website GINK Digital di Cloudflare Pages tiba-tiba gagal deploy. Log-nya cuma satu baris: “fatal: repository ‘https://github.com/…’ not found”.
Padahal repo-nya ada, SSH masih jalan, commit masih bisa push. Tapi Cloudflare nolak clone via HTTPS. Saya cek dashboard CF, semua deployment terbaru statusnya “No deployment available”.
“Mungkin token GitHub App-nya expired,” pikir saya. Coba uninstall lalu install ulang.
Error 404: Nyangkut
Nah, ini masalahnya. Setiap kali klik “Configure installation” di Cloudflare, saya malah diarahkan ke halaman 404 GitHub. URL-nya selalu mengandung parameter target_id yang, entah kenapa, sudah stale.
Saya coba:
- Uninstall GitHub App dari dashboard GitHub
- Revoke OAuth authorization
- Clear cache browser
- Incognito window
- Login akun yang benar
Tapi tetap saja, installasi langsung dari URL https://github.com/apps/cloudflare-workers-and-pages/installations/new selalu redirect ke .../permissions?target_id=... yang stale.
Frustrasi tingkat dewa.
Root Cause
Setelah investigasi, akar masalahnya sederhana: Cloudflare nyimpen state ID instalasi yang sudah tidak valid. Pas GitHub App di-uninstall (karena expired atau revoke), ID-nya mati, tapi Cloudflare tidak tahu. Jadilah error 404 setiap kali mau install ulang.
Ini bug di sisi Cloudflare, dan sayangnya belum ada tombol “reset state” di dashboard.
Solusi: GitHub Actions + Wrangler
Daripada terus berdebat dengan halaman 404, saya ambil jalan lain: skip GitHub App sepenuhnya.
Caranya? Gunakan GitHub Actions yang memanggil Wrangler CLI untuk deploy. Autentikasi pakai API Token, bukan GitHub App. Dijamin tidak akan 404 lagi.
Langkahnya:
- Buat CF API Token: dari dashboard Cloudflare → My Profile → API Tokens
- Simpan di GitHub Secrets: repo Settings → Secrets →
CF_API_TOKEN - Buat workflow file
.github/workflows/deploy.yml - Push: GitHub Actions otomatis jalan, deploy selesai
Workflow-nya sederhana. Isinya kira-kira gini:
name: Deploy to Cloudflare Pages
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
accountId: [ACCOUNT_ID]
command: pages deploy . --project-name=[NAMA] --branch=main
Hasilnya? Mulus. Commit ke GitHub → otomatis terdeploy. Tidak ada lagi error 404, tidak ada lagi GitHub App yang bandel.
Pelajaran
Dua pelajaran dari pengalaman ini:
- Jangan terlalu bergantung pada GitHub App. GitHub Actions + API Token lebih transparan dan tidak kena masalah state stale.
- Kalau stuck di satu solusi, cari alternatif. Saya bisa saja menghabiskan waktu berjam-jam lagi debugging GitHub App, tapi solusi lain sudah menunggu.
Semoga cerita ini membantu yang mengalami masalah serupa.