> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Square Cloud での Discord ボットのエラー: LoginFailure、禁止されたインテント、Lavalink 1006

> LoginFailure Improper token has been passed、TOKEN_INVALID、Used disallowed intents、Message Content Intent、Lavalink connection closed with code 1006、Square Cloud での Discord ボットのオフライン問題を解決します。

Square Cloud での Discord ボットのエラーは、たいていトークン、ゲートウェイインテント、または Lavalink とのバージョンの不一致に起因します。以下から正確なメッセージを見つけてください。

## "LoginFailure: Improper token has been passed" / TOKEN\_INVALID

**意味:** ログインに使用しているトークンをライブラリが拒否しています（discord.js は `LoginFailure`/「An invalid token was provided」を投げ、他のスタックでは 401 の `TOKEN_INVALID` が返されます）。

**発生理由:**

* Discord Developer Portal でトークンが再生成または失効しました。新しいトークンを生成すると、それが使われているすべての場所で古いトークンが即座に無効になります。
* トークンの文字列に、誤ってコピーされた余分なスペースや引用符が含まれています。
* コードが誤った環境変数を読み込んでいます。

**修正方法:**

1. [Developer Portal](https://discord.com/developers/applications) → アプリケーション → **Bot** → **Reset Token** に移動します。
2. Square Cloud ダッシュボードのこのアプリケーションの**環境変数**でトークンを更新します。トークンを `.zip` にアップロードされるファイルにコミットしないでください。
3. 値の前後に余分なスペースや引用符がないか再確認します。
4. ライブラリを更新します（`discord.js@latest` または `pip install -U discord.py`）。
5. アプリケーションを再起動します。

<Warning>ボットトークンをソースファイルにハードコーディングしないでください。必ずダッシュボードで設定した環境変数から読み込んでください。</Warning>

## "Used disallowed intents" / Message Content Intent

**意味:** ボットはログインしてオンラインに見えるものの、すべてのメッセージを無視するか、ゲートウェイが「used disallowed intents」で接続を拒否します。

**発生理由:** 2022 年以降、**Message Content** は特権インテントです。両方の場所で明示的に有効化されていないと、メッセージ内容が空で届くか（あるいはコードがアプリで有効化されていないインテントを宣言している場合はゲートウェイ接続自体が拒否されます）。

**両方の場所での修正方法:**

1. Discord Developer Portal → アプリケーション → **Bot** → **Privileged Gateway Intents** → **Message Content Intent** を有効化します。
2. コード側でも宣言します。

```javascript theme={null}
// discord.js
const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent,
  ],
});
```

```python theme={null}
# discord.py
intents = discord.Intents.default()
intents.message_content = True
client = commands.Bot(command_prefix="!", intents=intents)
```

3. アプリケーションを再起動します。

<Note>ボットが 100 サーバーを超えると、Message Content を含む特権インテントには、同じ Developer Portal のページから申請する Discord の承認も必要になります。</Note>

## Lavalink connection closed with code 1006

**意味:** ボットの Lavalink クライアントが WebSocket を異常終了（コード 1006）で閉じます。多くの場合、その直前に「Unexpected server response: 400」が出ています。

**発生理由:** これはバージョンの不一致です。Lavalink v4 は REST ベースであり、v3 向けに構築されたクライアントラッパーとは互換性がないため、ハンドシェイクが失敗しソケットが 1006 で閉じます。

**修正方法:**

1. ボットの Lavalink クライアントラッパーのバージョンを Lavalink サーバーのメジャーバージョンに合わせます（v3 クライアントには v3 サーバー、v4 クライアントには v4 サーバー）。
2. Square Cloud 上では、Lavalink サーバー自体はポート `80` をバインドしますが、ボットはエッジを通してポート `443` に `secure: true` で接続する必要があります。
3. バージョンの不一致を修正した後、Lavalink アプリケーションとボットアプリケーションの両方を再起動します。

Lavalink ホスティングの完全なセットアップ（設定ファイル、ポート、デプロイ）については、[Lavalink サーバーのチュートリアル](/ja/tutorials/how-to-create-your-lavalink-server)を参照してください。

## ローカルでは動くのに、デプロイ後ボットがオフラインになる

**意味:** ローカル環境でボットを実行するとログインは問題ないのに、デプロイ後にオフラインになる（または繰り返し再起動する）。

**よくある発生理由:**

* ゲートウェイレベルでの接続が不安定で、再接続処理がない。
* ローカルでテストした依存関係のバージョンと、依存関係ファイルに記載されているバージョンが競合または非互換になっている。
* レート制限への過度なアクセスによる Discord API の悪用トリガー（この場合、アカウントに通知メールが届きます）。

**修正方法:**

1. まずダッシュボードでアプリケーションのログを確認してください。実際のクラッシュ原因が示されます。
2. 一時的なエラーでプロセスがクラッシュしないよう、エラーハンドラを追加します。discord.js では `process.on("unhandledRejection", ...)` と `client.on("error", ...)`、discord.py では同等の処理を行います。
3. Square Cloud は、直前の稼働時間が 60 秒を超えていて、終了ステータスが 1 であり、過去 60 分以内に自動再起動していない場合に、クラッシュしたアプリを自動再起動します（マニフェストの `AUTORESTART`）。これにより一時的なエラーを乗り越えてボットを稼働させ続けられますが、根本的なコードのエラー、構文エラー、依存関係の欠落は修正されないため、コード側での修正が必要です。
4. Discord API のレート制限（429）に注意してください。グローバル制限はボットトークンあたり概ね 50 リクエスト/秒で、ルートごとにさらに厳しい制限があります（チャンネルの作成/編集はチャンネルあたり 10 分でおよそ 2 回まで）。積極的にキャッシュし、`X-RateLimit-Remaining`/`X-RateLimit-Reset-After` ヘッダーを尊重する非同期キューを使い、大量送信には Webhook を使用してください。

ゼロからのセットアップについては、[Discord ボットホスティングのチュートリアル](/ja/tutorials/bots/discord)を参照してください。

<Tip>ログを見ても明確な原因が分からない場合は、サポートチームがさらに深く調査をお手伝いします。</Tip>

## お問い合わせ

**技術的な問題**が解決しない場合は、**専門のサポートチーム**がお手伝いします。[**お問い合わせ**](https://squarecloud.app/ja/support)いただければ、どのような問題でも喜んで解決をサポートいたします — サポートの質の高さも、開発者が Google と Trustpilot で Square Cloud に[**402 件のレビューで 4.9/5**](https://www.trustpilot.com/review/squarecloud.app)という評価をつけている理由の 1 つです。
