41003 で写真が取り込めないのはiCloud同期中。写真アプリの再起動で直る


写真アプリが取り込みを片端から拒否して、ログに com.apple.photos.error Code=41003 が出ているなら、まず写真アプリを完全に終了して、もう一度起動してください。私の場合はそれだけで直りました。

41003 の意味は「保存しようとした瞬間に、保存先の写真ライブラリが居なくなっている」です。ファイルが壊れているせいではないので、画像を作り直しても形式を変換しても通りません。再起動で直らないなら、アクティビティモニタで photolibraryd を見てください。CPUを食って回りっぱなしなら、iCloudの同期の最中です。別のMacで写真を大量に消したり足したりした直後だと、その変更がこちらへ流れ込んでいる間は取り込みが通りません。同期が終わるまで待つのが早いです。

一枚だけ弾かれるならこの話ではありません。41003 は全部が同じ顔で落ちる側の症状です。

以下は、その結論にたどり着くまでの一晩の記録です。

二度目の「不明なエラー」

第4話で、「不明なエラー」という四文字を覚えておいてください、と書きました。この引っ越しでもう一度、もっと厄介な形で会う、と。その夜が来ました。

救い出した固有の写真を、いよいよ写真アプリへ入れていく。何枚か取り込んで、順調だと思っていたら、ある一群がまた全部、弾かれました。表示は、あの四文字です。

不明なエラー

今度は、権限じゃない

第4話の答えは「外付けディスクを読む権限が無かった」でした。地味だけど、原因は手元にあった。今回も同じ発想で潰そうとしました。でも、写真はもう内蔵ディスクにある。権限もある。前回の犯人は、今回はいません。

ここで、第4話で身につけた読み方をもう一度使います。メッセージじゃなく、失敗の“形”を読む。 全部か、一部か。今起きているのは、また「全滅」でした。全員が同じエラーで落ちている。ということは、犯人は個々のファイルじゃなく、環境の側にいる。

その仮説を、いちばん残酷な方法で確かめました。中身がまっさらな、新品の空っぽのPNGを一枚作って、取り込ませてみたんです。何のデータも問題も持っていない、生まれたてのファイル。これも弾かれました。「不明なエラー」で。

これで確定です。どんなに健全なファイルでも通らない。犯人はファイルの中には一人もいない。写真アプリそのものが、いま何を渡されても保存できない状態になっている。

41003

システムのログを掘ると、UIの「不明なエラー」の下に、本当のエラーが隠れていました。

com.apple.photos.error Code=41003
"strongPhotoLibrary is nil during PLMOC save"

意味は「新しい一枚をライブラリに保存しようとして、その保存先の写真ライブラリが、保存の瞬間に居なくなっている」。だから何を入れても、書き込む先が無くて失敗する。UIはその内部事情を全部飲み込んで、利用者にはただ「不明なエラー」とだけ見せる。第4話と同じ構図です。本当は何かを知っているのに、四文字しか出さない。

なぜライブラリが「居なくなる」のか。裏でphotolibrarydという写真アプリの管理プロセスが、CPUを40%以上食って回りっぱなしでした。iCloudの同期の真っ最中だったんです。ライブラリがまだ整合を取れていない、揺れている最中に、新しい保存をねじ込もうとして、ぶつかっていた。

昼に、別の部屋で消した一万枚

では、なぜこのタイミングで、この家のMacが激しく同期していたのか。

犯人は、前回書いた、あの昼の大掃除でした。別の場所にある仕事用のMacで、15万枚以上あった写真を重複排除して、約8万枚まで落とした――一万枚以上を削除した、あの作業です。危うく正しい写真まで消しかけた、あの掃除。

写真は、iCloudを通して一つのライブラリを複数のMacで共有しています。片方で消せば、その「一万枚を消した」という変更が、iCloud経由で、もう片方のMacへ流れ込む。昼に仕事用のMacでやった大整理が、夜、この家のMacに津波のように押し寄せている最中だったんです。ライブラリはその処理で手一杯で、新しい取り込みを受け付ける余裕が無かった。

離れた部屋の、触ってもいないMacの、昼間の作業が、夜、目の前のMacの写真アプリを一晩黙らせていた。犯人はこの部屋のどこにもいなくて、ネットワークの向こう側にいました。

直し方は、また拍子抜けだった

対処は、写真アプリを完全に終了して、もう一度起動しただけです。再起動したら、居なくなっていたライブラリがちゃんと戻ってきて、テストに一枚入れたら、すんなり保存されました。

第4話と同じで、これだけ大騒ぎした割に、答えはドラマのかけらもありません。でも第4話で書いた通りなんです。「不明なエラー」は、それが「権限の壁」なのか「一台目の大掃除の余波」なのかを、区別して教えてくれない。同じ四文字で、まったく違う二つを指す。だから毎回、自分でログを開けて、形を見て、どっち側の話かを判断するしかない。今回も、私を救ったのは「メッセージじゃなく形を読む」だけでした。

二台あっても、一つしかない

この夜がいちばん怖かったのは、直せたことよりも、気づいたことの方です。

私はどこかで、Macが二台あることを安心材料だと思っていました。片方が壊れても、もう片方に写真が残っている、と。でもこの一件は、その前提を壊しました。仕事用のMacで一万枚消したら、その削除は、家のMacからも同じように消えます。追加も、削除も、全部の端末に伝播する。

つまり、二台のMacは二つのコピーじゃない。一つの同じライブラリを、二箇所から覗いているだけです。片方で起きた事故は、もう片方でも起きる。だから、同じiCloudを見ている二台目のMacは、一台目のバックアップには決してなれない。「もう一台あるから大丈夫」は、いちばん確認しておくべきだった思い込みでした。

本当のバックアップは、iCloudと繋がっていない、別の場所にある独立したディスク――このシリーズでずっと退避先にしてきた、あの24TBやNASの側にしか無い。二台目のMacは、鏡です。鏡は、割れるときも一緒に割れる。

写真アプリはようやく動き出しました。取り込みを再開できる。ほっとして、私は次の一群を入れました。今度はちゃんと入る。一枚残らず、入りました。

――入ったのを確認して、日付の列を見て、私は固まります。何年も前に撮ったはずの写真が、全部、今日の日付になっていました。 保存できなかった夜の次は、保存できてしまったせいで壊れる話です。次に。