📝

Amplifyでteam-provider-info.json' does not existが発生したので解決してみた

2 min read

とある個人開発でAmplifyを使っているのですが、ある日amplify pullしようとしたら、
File at path: '<プロジェクトディレクトリ>\amplify\team-provider-info.json' does not existという謎のエラーが発生しました。
このエラーの再現ができたので、今回は解決方法を紹介したいと思います。

結論

amplify.config\local-env-info.jsonのprojectPathが実際のディレクトリと違うことでした。

GitHub issue

まずはこちらのGitHub issueを見つけたので、原因を探ってみたのですが、正直直接の原因が何かはよくわかりませんでした。とりあえず

I deleted everything inside of
/home/whatever/.nvm/versions/node/v12.18.4/lib/node_modules/@aws-amplify/
and reinstalled amplify, that worked

という記載があったので、aws-amplifyを再インストールするという方法もあるようです。

サポートに聞いてみた

シンプルに「team-provider-info.json' does not existが発生するのはなぜですか?」と聞いてみました。

当該のエラーは、Amplify CLI が参照しているプロジェクトディレクトリ内に amplify/team-provider-info.jsonが存在しない旨を示しております。
当方でお調べいたしましたところ、以下のような場合に同様のエラーが生じることを確認いたしました。

・プロジェクトディレクトリ下に amplify/team-provider-info.json が存在しなかった
・プロジェクトディレクトリのパスが、作成時 (amplify init または amplify pull 時) から変わった

なお、ご参照いただいている GitHub Issueにおいても述べられておりますが、Amplify CLI はプロジェクトに関する設定を、amplify/.config/ 下にファイルとして保持しており、そのうち local-env-info.json 内にて、プロジェクトのパスが定義されております。
お客様の端末上で、ディレクトリを移動された場合など、プロジェクトのパスが変わった場合、同様のエラーが生じることが想定されます。

原因は、

  1. team-provider-info.json が存在しない
  2. プロジェクトディレクトリのパスが変わったこと
    とのことでした。
    実際にamplify/.config/local-env-info.jsonを確認したところ、確かに以下のようなパスの記載がありました。
{
  "projectPath": "<プロジェクトパス>",
  "envName": "dev",
  "defaultEditor": "vscode"
}

パスをいじってみた

local-env-info.jsonのパスを存在しないパスに変更して、amplify pullしてみました。
すると、
File at path: '<存在しないディレクトリ>\amplify\team-provider-info.json' does not exist
のエラーが発生し、エラーの再現に成功しました。
パスを元に戻して再度amplify pullすると、エラーなくpullできることも確認できました。

作業ディレクトリを変えた覚えはないけど・・・

特に作業ディレクトリを変えた覚えはないのですが、エラーが発生した環境を見たときには、local-env-info.jsonのパスが実際のディレクトリと異なっていました。
なぜパスが変わっていたのかは謎のままです・・・。
(妖怪作業ディレクトリいじり丸の仕業だな)

まとめ

今回はAmplifyでteam-provider-info.json' does not existが発生したので解決してみました。原因ですが、

  1. team-provider-info.json が存在しない
  2. プロジェクトディレクトリのパスが変わったこと
    でした。
    今回の場合、2が原因で発生しており、local-env-info.jsonのパスを手動で正しいパスに設定したことで解決しました。
    どなたかの参考になれば幸いです。