Uncategorized

Cara Mengatasi Error Exec Approval di OpenClaw Telegram Tanpa Trial-Error Config

Mengalami error `Exec approval is required, but chat exec approvals are not enabled on Telegram` saat memakai OpenClaw? Ini panduan yang menjelaskan akar masalah sebenarnya, perubahan config yang tepat, cara validasi schema, restart gateway, dan verifikasi hasil sampai benar-benar aktif.
Featured image

Kalau Anda memakai OpenClaw lewat Telegram lalu tiba-tiba menemui error seperti ini:

Exec approval is required, but chat exec approvals are not enabled on Telegram.

masalahnya sering disalahpahami.

Banyak orang langsung mengira penyebabnya adalah sandbox masih aktif, profile tools belum full, atau agent belum diberi izin elevated. Padahal, di kasus seperti ini, akar masalahnya belum tentu ada di sana.

Saya menulis panduan ini dari proses yang benar-benar saya lakukan sendiri sampai berhasil. Pemicu awalnya juga nyata: error ini sempat dialami oleh Wulan saat workflow exec dijalankan lewat Telegram. Jadi ini bukan teori, bukan juga tebak-tebakan config.

Fokus panduan ini sederhana:

  • bagaimana mendiagnosis error dengan benar,
  • bagaimana menemukan akar masalah yang sebenarnya,
  • bagian config mana saja yang harus diubah,
  • bagaimana memvalidasi supaya tidak merusak service,
  • dan bagaimana memastikan hasil akhirnya benar-benar aktif.

Kalau Anda ingin OpenClaw di Telegram bisa menjalankan alur exec dengan benar, termasuk approval flow atau kebijakan exec yang lebih longgar sesuai kebutuhan, fondasinya memang harus dibangun dengan rapi.

Kenapa error ini sering bikin orang salah arah?

Karena pesan error-nya terdengar seperti masalah izin umum, padahal ada dua lapis yang harus dibedakan.

Lapis pertama adalah Telegram sebagai approval client.

Lapis kedua adalah default kebijakan exec itu sendiri.

Kalau Telegram belum diaktifkan sebagai channel yang boleh menerima approval, maka meskipun agent Anda sudah punya profile kuat, error approval tetap bisa muncul.

Sebaliknya, kalau tujuan Anda adalah membuat agent berjalan lebih bebas tanpa terus-menerus meminta approval, maka mengaktifkan approval client saja juga belum cukup. Anda tetap perlu menata kebijakan exec seperti host, security, dan ask.

Inilah alasan kenapa diagnosis awal harus rapi.

1. Mulai dari diagnosis, jangan langsung ubah config

Saya memulai dari pesan error berikut:

Exec approval is required, but chat exec approvals are not enabled on Telegram.

Langkah pertama saya bukan langsung mengubah sandbox atau restart service, tetapi mencari semua jejak approval dan policy yang terkait di repo serta config aktif.

Perintah yang saya pakai:

rg -n "Exec approval is required|chat exec approvals are not enabled|approval" /root/.openclaw
sed -n '1,260p' /root/.openclaw/openclaw.json
sed -n '1,240p' /root/.openclaw/exec-approvals.json
sed -n '1,220p' /root/.openclaw/devices/paired.json

Kenapa langkah ini penting?

Karena sebelum menyimpulkan apa pun, kita perlu memastikan:

  • apakah agent utama sudah punya profile tools yang cukup,
  • apakah user Telegram yang relevan sudah diizinkan untuk elevated actions,
  • apakah session yang aktif sebenarnya masih sandboxed atau tidak,
  • dan apakah Telegram memang sudah dikonfigurasi untuk approval flow.

Temuan penting dari diagnosis awal

  • Agent main sudah punya tools.profile: "full" di openclaw.json.
  • tools.elevated juga sudah mengizinkan user Telegram yang relevan.
  • Banyak session sudah tercatat sandboxed: false, jadi masalah utamanya bukan sekadar session masih terjebak sandbox.
  • Telegram memang belum dikonfigurasi sebagai exec approval client.

Di titik ini, arah problem jadi jauh lebih jelas. Masalah utamanya bukan “OpenClaw masih sandbox”, melainkan jalur approval di Telegram belum diaktifkan, dan kebijakan default exec juga belum dipaksa ke mode yang sesuai.

2. Cari nama config yang benar dari dokumentasi, jangan menebak

Setelah diagnosis awal, langkah berikutnya adalah memastikan saya memakai key config yang benar.

Ini penting, karena kesalahan kecil pada nama key atau struktur JSON bisa membuat config invalid, lalu service gagal membaca perubahan Anda.

Saya cek dokumentasi OpenClaw lokal yang terpasang di mesin.

sed -n '320,420p' /root/.nvm/versions/node/v24.13.1/lib/node_modules/openclaw/docs/tools/exec-approvals.md
sed -n '760,835p' /root/.nvm/versions/node/v24.13.1/lib/node_modules/openclaw/docs/channels/telegram.md
sed -n '920,950p' /root/.nvm/versions/node/v24.13.1/lib/node_modules/openclaw/docs/channels/telegram.md

Kesimpulan dari dokumentasi

  1. Telegram belum aktif sebagai approval client karena blok channels.telegram.execApprovals.* belum ada.
  2. Kalau tujuan Anda adalah memberi akses exec yang lebih penuh tanpa approval berulang, maka Anda juga perlu mengatur kebijakan exec seperti:
    • host = gateway
    • security = full
    • ask = off

Dengan kata lain, ada perbedaan antara mengaktifkan approval flow dan mengurangi atau mematikan kebutuhan approval lewat policy default. Keduanya saling terkait, tetapi bukan hal yang sama.

3. Bagian config yang saya ubah

Setelah akar masalah jelas, saya edit openclaw.json di tiga area utama.

A. Memaksa exec global ke mode penuh

"tools": {
  "profile": "coding",
  "exec": {
    "host": "gateway",
    "security": "full",
    "ask": "off"
  }
}

Kenapa ini penting? Karena blok ini memaksa policy default agar tidak lagi terlalu membatasi untuk workflow yang memang butuh akses lebih penuh.

B. Menyamakan override untuk agent main

"tools": {
  "profile": "full",
  "exec": {
    "host": "gateway",
    "security": "full",
    "ask": "off"
  }
}

Override agent tetap perlu disamakan supaya tidak ada konflik antara policy global dan policy agent utama.

C. Mengaktifkan Telegram sebagai approval client

"telegram": {
  "capabilities": {
    "inlineButtons": "all"
  },
  "execApprovals": {
    "enabled": true,
    "approvers": [8132001394],
    "target": "dm"
  }
}

Arti tiap bagiannya:

  • inlineButtons: "all" membuat tombol Telegram boleh tampil lebih luas.
  • execApprovals.enabled: true membuat Telegram resmi dianggap sebagai channel approval.
  • approvers membatasi siapa yang berhak memberi approval.
  • target: "dm" membuat prompt approval dikirim ke direct message approver.

Di sinilah akar error awal sebenarnya berada.

4. Jangan restart dulu, validasi config lebih dulu

Setelah edit config, saya tidak langsung restart service.

Langkah berikutnya adalah memvalidasi schema config supaya tahu apakah ada key yang salah, typo, atau struktur yang tidak didukung versi OpenClaw yang sedang terpasang.

openclaw config validate
openclaw config get tools.exec
openclaw config get agents.list[0].tools.exec
openclaw config get channels.telegram.execApprovals

Kesalahan yang sempat terjadi

Di tahap ini saya sempat menambahkan key askFallback, tetapi schema config menolaknya.

agents.list.0.tools.exec: Unrecognized key: "askFallback"
tools.exec: Unrecognized key: "askFallback"

Saya lalu hapus askFallback, validasi ulang, dan hasilnya bersih:

Config valid: ~/.openclaw/openclaw.json

Pelajarannya sederhana: jangan memaksakan key yang tidak ada di schema hanya karena terdengar masuk akal.

5. Restart gateway setelah config benar-benar valid

Setelah config dipastikan valid, barulah saya restart gateway OpenClaw.

openclaw daemon restart

Hasil utamanya:

Restarted systemd service: openclaw-gateway.service

6. Verifikasi bahwa gateway benar-benar hidup kembali

Sesudah restart, saya cek status service.

openclaw daemon status

Hasil penting yang harus Anda lihat biasanya mencakup hal-hal seperti ini:

Runtime: running
RPC probe: ok
Listening: 127.0.0.1:18789

Kalau tiga indikator ini muncul, berarti service berhasil naik dan gateway masih sehat.

7. Ringkasan akar masalah sebenarnya

Setelah seluruh proses tadi, kesimpulannya jadi sangat jelas.

Masalah awalnya bukan:

  • bukan sekadar karena sandbox masih aktif,
  • bukan sekadar karena profile tools belum full,
  • dan bukan sekadar karena agent belum diberi izin elevated.

Masalah sebenarnya ada di dua titik:

  1. Telegram belum diaktifkan sebagai chat exec approval client.
  2. Default exec policy belum dipaksa ke mode penuh dengan host=gateway, security=full, dan ask=off.

8. Solusi final yang saya terapkan

  1. Aktifkan channels.telegram.execApprovals.
  2. Ubah channels.telegram.capabilities.inlineButtons menjadi "all".
  3. Tambahkan tools.exec.host = gateway.
  4. Tambahkan tools.exec.security = full.
  5. Tambahkan tools.exec.ask = off.
  6. Ulangi override policy itu juga pada agent main.
  7. Jalankan validasi config.
  8. Restart gateway.
  9. Verifikasi status service setelah restart.

9. Cara uji ulang dari Telegram setelah semua beres

Setelah config aktif dan gateway sehat, lakukan pengujian sederhana dari Telegram.

Yang ingin Anda lihat adalah perubahan perilaku berikut:

  • agent tidak lagi mentok di error chat exec approvals are not enabled on Telegram,
  • flow approval bisa diarahkan sesuai konfigurasi bila memang masih digunakan,
  • atau, kalau policy ask=off sudah diterapkan, task exec tidak lagi menunggu approval interaktif seperti sebelumnya.

Kalau hasil uji ini sudah sesuai, berarti fondasi integrasi Telegram dan exec policy Anda memang sudah benar.

Penutup

Kalau saya rangkum dalam satu kalimat, inti masalah ini adalah:

error approval di Telegram sering terlihat seperti masalah sandbox, padahal akar utamanya justru ada pada konfigurasi channel approval dan default policy exec.

Karena itu, cara memperbaikinya juga harus berurutan:

  • diagnosa dulu,
  • cari nama config yang benar dari dokumentasi,
  • ubah policy yang relevan,
  • validasi,
  • restart,
  • lalu verifikasi runtime.

Kalau alurnya rapi seperti ini, hasilnya bukan cuma “bisa jalan”, tetapi juga lebih aman dijadikan SOP internal maupun artikel publik yang kredibel.

Kalau Anda sedang butuh implementasi OpenClaw yang lebih rapi untuk Telegram, workflow automation, atau setup operasional yang siap dipakai untuk bisnis, pendekatan seperti ini jauh lebih layak daripada sekadar trial-error config.

123 Views
0 Likes
1 Shares
Estimasi waktu baca: 7 menit

Tentang Penulis

Rama Aditya

Rama Aditya

Digital Marketing Strategist
Fullstack Engineer
Business Consultant

Profesional dengan pengalaman 15+ tahun dalam digital marketing, fullstack development, dan konsultasi bisnis. Fokus membantu bisnis Indonesia membangun sistem yang efisien, scalable, dan berdampak langsung ke pertumbuhan bisnis.

Pelajari Tentang Kami
RD
Rama Digital

Spesialis integrasi sistem marketing dan modernisasi aplikasi untuk pebisnis Indonesia. Membantu UMKM dan perusahaan scale dengan teknologi modern.

Contact

  • [email protected]
  • +62 858-0332-7994
  • Park 23 Creative Hub, 3rd Floor
    Jl. Kediri, Tuban, Kuta, Badung
    Bali 80361
  • 9:00 - 18:00 WIB

Mulai Project

Siap optimasi bisnis Anda dengan teknologi modern? Konsultasi gratis sekarang.

Konsultasi Gratis