튜토리얼 카테고리 Skills 소개
ZH EN JA KO
문제 해결

OpenClaw Telegram 봇 무응답 문제 해결 가이드

· 8 분 소요

문제 설명

Telegram 채널을 설정한 후, OpenClaw의 Telegram 봇이 메시지를 수신하지 못하거나 사용자에게 응답하지 않는 현상이 발생할 수 있습니다. 일반적인 증상은 다음과 같습니다:

사용자가 Telegram에서 봇에게 메시지를 보낸 후 아무 반응이 없고, OpenClaw 로그에도 메시지 수신 기록이 보이지 않는 경우:

[openclaw:telegram] Bot started. Listening for messages...

로그에 시작 성공이 표시되지만 이후 메시지 처리 기록이 없습니다.

또는 로그에 오류가 표시되는 경우:

[openclaw:telegram] Error: 409 Conflict: terminated by other getUpdates request

또는:

[openclaw:telegram] GrammyError: Call to 'getMe' failed! (401: Unauthorized)

OpenClaw의 Telegram 채널은 grammY 프레임워크 기반으로 구축되어 있으며, Telegram Bot API를 통해 Telegram 서버와 통신합니다.

진단 단계

Bot Token 유효성 확인

먼저 설정에 사용된 Bot Token이 올바르고 유효한지 확인합니다:

curl https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getMe

정상 응답은 봇의 기본 정보를 반환해야 합니다:

{
  "ok": true,
  "result": {
    "id": 123456789,
    "is_bot": true,
    "first_name": "MyBot",
    "username": "my_openclaw_bot"
  }
}

{"ok":false,"error_code":401,"description":"Unauthorized"}가 반환되면 Token이 유효하지 않습니다.

Webhook 충돌 확인

Telegram Bot API는 메시지를 수신하는 두 가지 방식을 제공합니다: 폴링(polling)과 Webhook. 이전에 Webhook을 설정했지만 현재 OpenClaw이 폴링 방식을 사용하고 있다면, Webhook이 존재하여 폴링으로 메시지를 수신할 수 없게 됩니다.

현재 Webhook 상태를 확인합니다:

curl https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getWebhookInfo

url 필드가 비어있지 않으면, Webhook 설정이 존재합니다.

OpenClaw 설정 확인

~/.openclaw/openclaw.json에서 Telegram 채널 설정을 확인합니다:

cat ~/.openclaw/openclaw.json | grep -A 10 telegram

botToken 필드가 존재하고 비어있지 않은지 확인합니다.

해결 방안

문제 1: Bot Token이 유효하지 않거나 만료된 경우

Token이 유효하지 않으면 다시 받아야 합니다:

  1. Telegram에서 @BotFather를 찾습니다
  2. /mybots을 보내 봇 목록을 확인합니다
  3. 해당 봇을 선택하고 "API Token"을 클릭합니다
  4. Token을 재설정해야 하면 "Revoke current token"을 클릭하여 새 Token을 생성합니다

새 Token을 설정 파일에 업데이트합니다:

{
  "channels": {
    "telegram": {
      "botToken": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
    }
  }
}

그런 다음 OpenClaw을 재시작합니다:

openclaw restart

문제 2: Webhook 충돌 (409 오류)

409 Conflict 오류는 보통 다른 프로세스가 같은 Bot Token으로 getUpdates를 호출하고 있거나, 남은 Webhook 설정이 있음을 나타냅니다.

Webhook을 삭제합니다:

curl https://api.telegram.org/bot<YOUR_BOT_TOKEN>/deleteWebhook

같은 Bot Token을 사용하는 다른 프로그램이 없는지 확인합니다. 중복 OpenClaw 인스턴스가 실행 중인지 확인합니다:

ps aux | grep openclaw

여러 인스턴스가 발견되면 불필요한 프로세스를 중지합니다.

문제 3: 봇 권한 미설정

봇이 그룹에서 메시지를 수신할 수 없다면 그룹 프라이버시 모드가 활성화되지 않았기 때문일 수 있습니다:

  1. BotFather에서 /mybots을 보냅니다
  2. 봇 선택 → Bot Settings → Group Privacy
  3. Privacy mode를 Disabled로 설정합니다

이렇게 하면 봇이 그룹의 모든 메시지를 수신할 수 있으며, /로 시작하는 명령 메시지만이 아닙니다.

문제 4: grammY 프레임워크 오류

로그에 grammY 관련 예외가 나타나면, 상세 로그를 활성화하여 문제를 해결합니다:

DEBUG=openclaw:telegram*,grammy* openclaw start

일반적인 grammY 오류 및 처리 방법:

  • ETELEGRAM: 429 Too Many Requests: 메시지 전송이 너무 빈번하여 Telegram에 의해 속도 제한됨. OpenClaw은 기본적으로 속도 제한이 설정되어 있지만, 설정을 수정한 경우 제한 설정을 확인하세요.

  • EFATAL: Polling stopped: 치명적 오류로 인해 폴링이 중지됨. 전체 오류 스택을 확인하세요. 보통 네트워크 문제 또는 Token 실효입니다.

  • Error: getaddrinfo ENOTFOUND api.telegram.org: DNS 확인 실패. 네트워크 연결과 DNS 설정을 확인하세요.

문제 5: 네트워크 접근 제한

일부 지역에서는 Telegram API에 직접 접근할 수 없을 수 있습니다. 프록시를 설정합니다:

{
  "channels": {
    "telegram": {
      "botToken": "YOUR_TOKEN",
      "proxy": {
        "url": "socks5://127.0.0.1:1080"
      }
    }
  }
}

OpenClaw의 Telegram 채널은 HTTP 및 SOCKS5 프록시를 지원합니다.

수정 검증

수정 후 봇이 정상적으로 작동하는지 확인합니다:

openclaw start

그런 다음 Telegram에서 봇에게 테스트 메시지를 보내고, OpenClaw의 로그 출력에 메시지 수신 및 처리 기록이 나타나는지 확인합니다. 로그에 다음과 비슷한 출력이 보여야 합니다:

[openclaw:telegram] Received message from user 123456: "안녕하세요"
[openclaw:gateway] Processing message for channel telegram, user 123456
[openclaw:telegram] Sent reply to user 123456

모든 것이 정상이면, 봇이 Telegram에서 메시지에 응답합니다.

OpenClaw는 무료 오픈소스 개인 AI 어시스턴트로, WhatsApp, Telegram, Discord 등 다양한 플랫폼을 지원합니다