【深夜2時のデバッグとコーヒーの話】朝になって気づいた「あの一行」

昨夜またやってしまった。深夜2時まで作業して、翌朝スッキリした頭で見たら5分で解決した、あの体験だ。

始まりはいつも「ちょっと確認するだけ」

夜の22時ごろ、個人開発のWordPress自動投稿スクリプトをテストしていた。ちょっとAPIのレスポンスを確認するだけのつもりだった。

response = wp.post("wp/v2/posts", payload)
print(response)

ところが 400 Bad Request が返ってくる。ペイロードは間違っていないはずだ。昨日まで動いていたコードだ。何も変えていないはずなのに。

「ちょっと確認するだけ」が、気づいたら深夜2時になっていた。

泥沼にハマる過程

最初はAPIのエラーレスポンスをちゃんと読んだ。rest_invalid_param というエラーコードで、どのパラメータが悪いのかが書いてある。でも見てもよくわからない。

次にログを追加した。送信前のペイロードをダンプして確認した。問題なく見える。

それならリクエストヘッダーかと思って、Authorizationヘッダーを確認した。正しく設定されている。

ネットワーク系の問題かもと思って、curl で同じリクエストを試した。通った。

「じゃあコードのどこかが悪い」と改めてコードを読み返す。読んでも読んでも問題が見えない。

23時を過ぎた頃から、明らかに思考が鈍くなっていた。コーヒーを飲んだ。深夜のコーヒーは良くないとわかっているけど、もう少しで解決できそうな気がして止められなかった。

深夜のコーヒーは思考を加速させない

深夜2時のコーヒーはただ眠れなくなるだけだ。思考が加速するわけではない。むしろ焦りだけが増して、同じところを何度も確認するループに入っていた。

変えるべきでない部分を変えてみたり、関係ない設定ファイルを開いたり、Stackoverflowで似たような症状を検索して全く関係ない記事を読んだり。

妻がリビングに来て「まだやってるの?明日でいいじゃない」と言った。「もうちょっとで解決できそう」と答えた。根拠はなかった。

翌朝、5分で解決

結局2時半に諦めて寝た。

翌朝、コーヒーを淹れてから何気なくコードを開いた。

問題は一瞬でわかった。

# 昨夜のコード(バグあり)
payload = {
    "title": title,
    "content": content,
    "status": "publish",
    "categories": category_id,  # ← ここ
}

# 正しいコード
payload = {
    "title": title,
    "content": content,
    "status": "publish",
    "categories": [category_id],  # ← リストで渡す必要があった
}

categories は整数ではなくリストで渡す必要があった。WordPressのREST APIのドキュメントに書いてあることだ。昨夜も確認したはずなのに、なぜか見えていなかった。

修正して実行した。動いた。かかった時間は3分くらいだった。

学んだこと

深夜のデバッグには明確な「撤退ラインを設ける」べきだと改めて思った。

私が最近決めているルールは「同じ問題を30分で解決できなかったら、翌朝に回す」だ。実際には守れないことも多いけれど、少なくとも意識するようにはなった。

疲れた脳は問題を解決できない。それどころか、あるはずのものが見えなくなる。昨夜も「categories はリストで渡す」という明白な記述を何度か目にしていたはずなのに、脳が処理できていなかった。

深夜のコーヒーは一時的に眠気を紛らわせるだけで、問題解決能力を回復させる効果はない。これは経験則として確かだ。

在宅ワークの甘い罠

オフィスに通っていた頃は「今日はもう帰る時間だ」という外部的な締め切りがあった。在宅ワークはその境界がない。

終わるタイミングを自分で決めなければならない。それが在宅ワークの難しさのひとつだと思う。

昨夜の教訓として、デスクの横に「23時になったら作業を終了する」という付箋を貼った。守れるかどうかはわからないけれど、視界に入れておくだけでも少しは違う気がしている。

次に深夜デバッグをしそうになったら、この記事を読み返すことにしよう。