Slate Errors

Server Error

501

Not Implemented

— 実装されていません

まずは確認: よくある原因 TOP3

  1. そのメソッド (PATCH, OPTIONS 等) を実装していない
    ハンドラ自体が存在せず、汎用 501 が返っている
  2. 古いサーバーが新しい仕様/拡張に未対応
    HTTP/2 や CORS preflight、標準外メソッドの扱い
  3. フィーチャーフラグでオフのまま
    コードはあるが、本番ではまだ有効化していない

何が起きたのか?

501 は「そのやり方は、このサーバーがまだ用意していません」というサインです。 教室で言えば、新しい授業をやろうとしたら、まだ教材も道具も届いていなかった——そんな状況に近いかもしれません。先生が拒んでいるのではなく、設備が追いついていないだけです。

405 が「ここではその方法を許可していない」(意図的な禁止)であるのに対して、501 は「そもそも持っていない」(未実装)。サーバーは将来対応する可能性を残しつつ、今は応えられないと正直に伝えます。

黒板からのひとこと

学校に新しい実験器具が来る前、先生は「来週入ってくるから、その後でやろう」と返します。約束を破っているのではなく、ただ準備が間に合っていない。501 が返ってくるとき、サーバーも同じ姿勢でこちらを待っている、と考えるとわかりやすいです。

クライアント側でできることは限られていて、別のメソッドや別のエンドポイントを試すか、対応版が出るのを待つかです。リトライしても結果は変わりません。

解決への歩み

大丈夫、次はこうしてみよう:

  1. APIドキュメントで対応メソッドを確認:そもそも実装予定があるのか調べる
  2. 代替の手段を探す:別のエンドポイントや別バージョンで同じ目的を達成できないか
  3. サーバー/ライブラリのバージョンを確認:新しい版で対応している可能性
  4. 未実装機能の優先度を整理(管理者向け):要望の頻度を集め、ロードマップに乗せるか、明確に非対応と告知するかを判断

実際にはこう見える

$ リクエスト

curl -i https://example.com/some/path

↓ レスポンス

HTTP/1.1 501 Not Implemented
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<html><body><h1>501 Not Implemented</h1></body></html>

似ているケース

もっと知りたい