Wanderlust (wl)で"wrong-type-argument number-or-marker-p nil"

仕事しようと思って休日出勤したら、このエラーで2時間。つらい。

現象

Wanderlustで、inboxフォルダに移動すると「wrong-type-argument number-or-marker-p nil」とミニバッファに表示される。この結果、新着メール(すべてinboxに届く)が読めない。

対応

前回、おなじことあったなぁと思ってGoogleで検索したところ微妙に違うけど似たような事例があった。

まず、エラーメッセージを表示させる。エラーメッセージが前回と違う。

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  <(nil 58521)
  sort((〜省略〜) <)
  elmo-list-diff((〜省略〜) (〜省略〜))
  wl-summary-sync-update(unset-cursor nil nil nil)
  wl-summary-sync-force-update(unset-cursor)
  byte-code(〜省略〜)
  wl-summary-goto-folder-subr(#("+inbox" 0 6 (wl-folder-entity-id 1 wl-folder-is-group nil)) update nil nil t)
  wl-folder-jump-to-current-entity(nil)
  call-interactively(wl-folder-jump-to-current-entity nil nil)
  command-execute(wl-folder-jump-to-current-entity)

現象としては、inboxから別のフォルダに移動させたメール(メールID 58521を含む)がいまだにinboxに表示されている。実際の~/Mail/inboxには当該メールは存在しない。その結果、elmo-list-diffなどで失敗している雰囲気。

いろいろ試行錯誤した結果、「wl-summary-sync-update」で検索して見つかった 公式マニュアルに記載されている wl-summary-sync を実行してmsgdbを作りなおすことでうまくいった。

  • all-entirely 現在の msgdb の内容を破棄し、全情報を取り寄せ直します。killed メッセージも取り寄せ直します。

wl-summary-syncのレンジ一覧より)

今回、不具合があった inboxに移動し、「M-x wl-summary-sync」で、Rangeを「all-entirely」とした。

以上、メモ。