DevOps Cloudflare Pengalaman

Drama GitHub App Cloudflare 404

7 Juli 2026 — 5 menit baca

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 → 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:

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:

  1. Buat CF API Token — dari dashboard Cloudflare → My Profile → API Tokens
  2. Simpan di GitHub Secrets — repo Settings → Secrets → CF_API_TOKEN
  3. Buat workflow file .github/workflows/deploy.yml
  4. 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:

  1. Jangan terlalu bergantung pada GitHub App. GitHub Actions + API Token lebih transparan dan tidak kena masalah state stale.
  2. 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. Kalau ada pertanyaan, DM atau email aja.


Avathur Rahman — Konsultan Bisnis & Digital Marketing Syariah.
Juga nulis di GINK Digital versi teknis lengkap.

← Kembali ke beranda