Skip to main content

[#6 Troubleshoot] Error Hook executed successfully but returned HTTP 403

saya mendapatkan error ini disaat melakukan test di webhook gitlab

Hook executed successfully but returned HTTP 403 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/> <title>Error 403 No valid crumb was included in the request</title> </head> <body><h2>HTTP ERROR 403 No valid crumb was included in the request</h2> <table> <tr><th>URI:</th><td>/job/playwright-from-gitlab/build</td></tr> <tr><th>STATUS:</th><td>403</td></tr> <tr><th>MESSAGE:</th><td>No valid crumb was included in the request</td></tr> <tr><th>SERVLET:</th><td>Stapler</td></tr> </table> <hr/><a href="https://eclipse.org/jetty">Powered by Jetty:// 10.0.20</a><hr/> </body> </html>

Terima kasih, ini error yang sering muncul saat GitLab mencoba trigger Jenkins tanpa "crumb" (CSRF token). Tapi gampang diatasi.


❗️Masalah:

GitLab Webhook ⟢ Jenkins
➑ HTTP 403 – No valid crumb was included in the request

Artinya: Jenkins menolak request karena tidak ada CSRF protection token (disebut "crumb" di Jenkins).


βœ… Solusi 1: Nonaktifkan CSRF Protection (Paling mudah & cepat)

Jika Jenkins kamu hanya digunakan internal (LAN/local), kamu bisa mematikan proteksi CSRF:

πŸ”§ Langkah-langkah:

  1. Masuk ke Jenkins

  2. Klik Manage Jenkins

  3. Klik Configure Global Security

  4. Scroll ke bagian "CSRF Protection"

  5. Uncheck/disable opsi: βœ… Prevent Cross Site Request Forgery exploits

  6. Klik Save

πŸ’‘ Setelah ini, webhook GitLab bisa langsung trigger build tanpa error 403.


βœ… Solusi 2: (Jika CSRF tidak boleh dinonaktifkan)

Kalau kamu harus tetap mengaktifkan CSRF protection (misalnya Jenkins diakses dari publik atau security concern):

  • Gunakan plugin GitLab Plugin yang mendukung trigger berbasis webhook dengan GitLab Push Trigger di dalam Jenkins job

  • Atau, gunakan Jenkins REST API dengan crumb valid (lebih rumit)

Tapi karena kamu di LAN/internal dan hanya ingin GitLab ➝ Jenkins jalan, Solusi 1 adalah terbaik dan aman.


πŸ” Setelah Nonaktif CSRF:

  • Ulangi Test Webhook dari GitLab

  • Pastikan Jenkins Job langsung triggered


πŸ’¬ Contoh Webhook URL

Tanpa auth token:

http://jenkins.local:8080/job/playwright-from-gitlab/build?token=gitlab-trigger

Kalau pakai user/token:

http://widianto:jenkinsapitoken@jenkins.local:8080/job/playwright-from-gitlab/build?token=gitlab-trigger