CodeCommitで「Failed to write item to store. fatal: 配列の範囲が無効です」が発生したときの対処

2023.03.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、ゲームソリューショングループのsoraです。
今回は、CodeCommitで「Failed to write item to store. fatal: 配列の範囲が無効です」が発生したときの対処について記載いたします。

エラーについて

Windowsでgit-remote-codecommit(GRC)を使って、CodeCommitリポジトリからcloneを作成しようとしたところ以下のエラーが出ました。

fatal: Failed to write item to store. [0x6c6]
fatal: 配列の範囲が無効です。

ローカルにclone自体はできていて、git pushなどのリモートリポジトリが絡む他のコマンドでもエラーは出るものの、操作自体は問題なく完了します。

エラー原因

調べてみると、どうやらGit Credential Manager(GCM)を設定している場合、CodeCommit利用時もGCMが参照しにいってエラーが出るようです。
CodeCommit Git Windows fatal: Failed to write item to store [0x6c6]

エラーの解消

GCMをCodeCommit利用時に参照させず、利用するサイトを限定するように設定します。
今回はGCMを利用するサイトをGitHubに限定したいと思います。

# gitconfigを確認し、credential.helperの設定値を確認
# どこに登録されているかの特定のために、system/global/localのそれぞれで表示させています。
$ git config --local --list
$ git config --global --list
$ git config --system --list
…
credential.helper=manager-core
※GCMのバージョンによっては、manager-coreではなくmanagerになっています。
…

# 登録されている箇所を見つけて設定削除(今回はsystemのみとします。)
$ git config --system --unset credential.helper

# GitHubのみを対象にGCMを使用するように設定(GCMのバージョンによってはmanager-coreではなくmanager)
$ git config --system credential.https://github.com.helper manager-core

これでCodeCommit利用時のエラーは解消されて、GitHub利用時もGCMが適用されるように変更できています。

最後に

今回は、CodeCommitで「Failed to write item to store. fatal: 配列の範囲が無効です」が発生したときの対処について紹介しました。どなたかの参考になると幸いです。