GASでonEditがエラーになる

GASであれこれいじっていたら今まで動いていたシンプルトリガーのonEditが動かなくなってしまいました。

自分でonUpdateのような関数を別途作ってトリガーを設定してあげるとちゃんと動いてくれます。

ググってみると次の条件がすべて合致すると発生するという情報が見つかりましたので自分の状況を確認してみます。見つけるのに結構苦労しました。情報感謝します。

  • V8ランタイムが有効である
  • ライブラリにdeveloperモードのものがある
  • スクリプトのオーナー以外のユーザーによる実行である
参考 「ストレージからの読み取り中にサーバーエラーが発生しました。エラーコード: NOT_FOUND。」 | RAKU な API「ストレージからの読み取り中にサーバーエラーが発生しました。エラーコード: NOT_FOUND。」 | RAKU な API

V8ランタイムが有効である

スクリプトの設定を見てみると有効です。

ライブラリにdeveloperモードのものがある

HEAD(開発モード)というのがdeveloperモードを指すようで、こちらもありました。

スクリプトのオーナー以外のユーザーによる実行である

onEditのようなシンプルトリガーの場合はファイルオーナーではなく実行者の権限で動作するそうですのでこれも当てはまります。そしてシンプルトリガーではなく自分でトリガーを設定した場合は、トリガーを設定した人のアカウントで実行されるので、自分でトリガー設定した時だけ動いたのもうなずけます。

参考 【図解説明】GASの実行権限や共有権限の仕組みについて解説初心者でもわかるGoogle Apps Script活用のススメ

この症状自体はバグじゃないのかなと思うのですがとりあえず条件が分かって助かりました。シンプルトリガーには他にも認証が必要な処理は実行できないとか色々制限があるようなので注意です。

参考 Simple Triggers  |  Apps Script  |  Google DevelopersGoogle Developers

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です