디스코드 봇이 오프라인이 되는 이유는 몇 가지로 예측할 수 있어요. 토큰을 재설정했거나, 특권 인텐트를 껐거나, 호스팅 봇의 투표 기간이 만료되었거나, 봇이 의존하는 서버에서 봇이 제거된 경우예요. 디스코드 게이트웨이는 종료 코드로 어떤 이유인지 알려 줘요. 코드 4004와 4013/4014가 가장 자주 보이는 두 가지이고, 각각은 "그냥 재시작하고 기다려 보세요"가 아니라 구체적이고 기계적인 해결 방법이 있어요.

A user's bot token runs on a Noxyr node and comes online as their own branded bot. Your token Noxyr node MyBot Online

여기서 시작하세요: 가장 가능성 높은 원인부터

각 원인이 실제로 발생하는 빈도 순서예요:

  1. 토큰이 재설정되었어요. 누군가 개발자 포털에서 Reset Token을 일부러 또는 실수로 눌렀고, 봇이 쓰던 이전 토큰은 이제 쓸 수 없어요.
  2. 특권 인텐트가 꺼졌어요. 봇을 이미 설정한 뒤에 Server Members Intent나 Message Content Intent가 꺼졌어요.
  3. 투표 또는 구독 기간이 끝났어요. Noxyr 커스텀 봇처럼 호스팅되는 봇은 실행 시간이 Top.gg 투표에 묶여 있어요. 투표 기간과 그 유예 기간이 모두 지나갔어요.
  4. 봇이 서버에서 제거되었거나, 봇이 의존하는 다른 봇이 제거되었어요. 커스텀 봇은 특히 Noxyr 자체가 서버에 있는 것에 의존해요. Noxyr를 추방하면 그 서버에서 커스텀 봇이 멈춰요.
  5. 실제 장애예요. 디스코드 자체에 문제가 생긴 날이에요. 드물지만, 내 설정 문제라고 단정하기 전에 discordstatus.com을 확인하세요.

게이트웨이 종료 코드가 실제로 뜻하는 것

코드의미일반적인 원인
4004인증 실패토큰이 잘못되었거나 개발자 포털에서 재설정되었어요
4013잘못된 인텐트봇 코드가 존재하지 않는 인텐트를 요청했거나, 디스코드가 거부하는 조합을 요청했어요
4014허용되지 않은 인텐트봇이 애플리케이션에서 켜지지 않은 특권 인텐트(Server Members 또는 Message Content)를 요청했어요

실제로는 대부분의 봇에서 4013과 4014가 같은 근본 원인으로 나타나요. 코드가 필요로 하는 특권 인텐트가 포털에서 꺼져 있는 것이에요. Discord.js 같은 라이브러리는 이것을 원시 숫자 코드 대신 로그에 "disallowed intents" 오류로 표시하기도 하지만, 같은 문제예요. 각 인텐트가 무엇을 제어하고 없으면 무엇이 깨지는지는 특권 게이트웨이 인텐트 가이드에서 더 자세히 다루고 있어요.

Noxyr 커스텀 봇에서 각각 해결하기

게이트웨이 4004, 또는 "Discord rejected this token"

봇이 마지막으로 로그인했던 토큰이 더 이상 존재하지 않아요. 개발자 포털에서 토큰을 재설정하면 이런 일이 생겨요. 보안을 위해 일부러 교체했든, Bot 탭을 둘러보다가 실수로 Reset Token을 눌렀든 마찬가지예요.

  1. 디스코드 개발자 포털을 열고, 애플리케이션을 선택한 뒤 Bot 탭으로 가세요.
  2. Reset Token을 다시 누르세요. 새 토큰이 생성돼요. 디스코드는 한 번만 보여 주므로 바로 복사하세요.
  3. Noxyr 대시보드의 커스텀 봇 페이지를 열고 새 토큰을 붙여넣으세요.
  4. 봇을 다시 켜세요. Noxyr 노드는 토큰이 유효하지 않은 봇을 자동으로 꺼서, 죽은 재연결 루프에 머물지 않게 해요. 작동하는 토큰을 붙여넣고 켜는 것이 봇을 다시 시작하는 방법이에요.

게이트웨이 4013/4014, 또는 "Discord refused the connection"

설정할 때 켜져 있던 특권 인텐트가 나중에 꺼진 경우예요. 보통 누군가 관련 없는 이유로 Bot 탭을 이것저것 누르고 있을 때 생겨요.

  1. 개발자 포털에서 Bot → Privileged Gateway Intents로 이동하세요.
  2. Server Members Intent와 Message Content Intent를 다시 켜세요. 둘 다 필요해요. Noxyr의 기능 세트(환영 메시지, 멤버 수, AI 채팅, 자동 응답, 티켓 트랜스크립트)가 둘 다 필요로 하기 때문이에요.
  3. 저장한 다음, 대시보드의 커스텀 봇 페이지에서 봇을 다시 켜세요. 디스코드는 인텐트 변경 사항을 다음 로그인 때에야 적용하므로, 토글을 다시 켜는 것만으로는 충분하지 않아요. 봇이 다시 연결되어야 해요.

투표 기간과 유예 기간이 지났어요

커스텀 봇은 Top.gg 투표로 실행돼요. 투표 한 번으로 12시간 동안 열리고, 그 뒤에는 74시간의 유예 기간 동안 대시보드 페이지가 잠겨도 봇이 계속 실행돼요. 둘 다 끝나면 봇은 오프라인이 되지만, 설정은 아무것도 삭제되지 않아요.

  1. Top.gg에서 Noxyr에 투표하세요.
  2. 커스텀 봇 페이지로 돌아가세요. 투표가 반영되면 바로 잠금이 풀려요.
  3. 봇은 이전과 같은 토큰과 설정을 사용해서 스스로 다시 시작해요.

이 문제를 막기 위해, 마지막 투표 후 24시간이 지났을 때(유예 기간 12시간 경과 시점) 알림 DM이 발송돼요. 봇 상태에 "일시 중지됨"이 표시되면, 페이지 자체가 투표 문제인지, 유예 기간 문제인지, 아니면 아래의 다음 문제인지 알려 줘요.

Noxyr가 서버에서 제거되었어요

커스텀 봇은 해당 서버에 대한 Noxyr의 설정과 데이터베이스를 사용하므로, Noxyr가 여전히 멤버여야 해요. Noxyr가 추방되면 커스텀 봇은 약 1분 안에 그 서버에 대한 서비스를 멈추고, Noxyr를 제거한 사람(그리고 그 사람이 봇 소유자가 아니라면 봇 소유자)에게 초대 링크가 담긴 DM을 보내요.

  1. DM의 링크나 Noxyr 홈페이지에서 Noxyr를 다시 초대하세요.
  2. Noxyr가 서버에 돌아오면 커스텀 봇은 스스로 다시 시작해요. 토큰이나 인텐트를 건드릴 필요가 없어요.

이 특정한 이유로 멈춘 동안에는 투표 기간이 소모되지 않고 일시 정지돼요. 그래서 Noxyr를 빨리 다시 초대해도 남은 시간을 잃지 않아요.

위 방법으로도 해결되지 않는다면

먼저 커스텀 봇 페이지의 상태 메시지를 확인하세요. Noxyr 노드는 원시 오류 코드 대신 쉬운 말로 된 이유(잘못된 토큰, 잘못된 인텐트, 일시 중지됨, 그 밖의 경우에는 일반적인 재시도 메시지)를 적어 줘요. 상태 메시지가 위의 어떤 경우와도 맞지 않거나, 제대로 된 해결 방법을 적용했는데도 봇이 계속 오프라인이라면, 지원 센터가 해당 서버를 가장 빨리 확인하는 방법이에요. 전체 설정과 문제 해결 단계는 커스텀 봇 문서에도 있어요.

자주 묻는 질문

아무것도 하지 않았는데 봇이 바로 오프라인이 된 이유는 뭔가요? "아무것도 하지 않았다"는 보통 포털이나 서버에 접근할 수 있는 다른 사람이 무언가를 바꿨다는 뜻이에요. 토큰 재설정, 인텐트 토글, 추방 같은 것이죠. 먼저 커스텀 봇 페이지의 상태 메시지를 확인하세요. 원인을 알려 줘요.

봇이 오프라인이 되면 데이터를 잃나요? 아니요. 봇이 멈춘 이유와 상관없이 토큰, 설정, 티켓, 상품, 인보이스, 트랜스크립트는 모두 보관돼요. 원인을 해결하면 모든 것이 그대로 돌아와요.

투표와 관련된 오프라인 상황을 완전히 피할 수 있나요? 대략 3일 반마다 투표하세요(12시간 투표 기간과 74시간 유예 기간이 끝나기 전에). 그러면 그 이유로 봇이 내려가는 일은 절대 없어요.

봇을 재시작할 때마다 인텐트를 다시 켜야 하나요? 아니요. 인텐트는 디스코드 애플리케이션 자체의 설정이지, 초기화되는 것이 아니에요. 둘 다 켜고 저장하면, 누군가 끄기 전까지 계속 켜져 있어요.

다시 온라인으로 돌리실 준비가 되셨나요? 위의 원인을 해결한 다음 커스텀 봇 페이지에서 봇을 시작하세요. 처음 설정하는 경우라면 Noxyr를 무료로 추가하세요.