#61　Google Apps Script（GAS）からエラー通知メールが届いたので確認してみた

### はじめに
これまでGASを使い、いろいろ試してきました。

<a href="https://qiita.com/nxted_sapporo/items/49a2f26c77b72a5b6544" target="_blank">スプレッドシートとGASで締め切りの前のタスクをメールで通知させてみた</a>
<a href="https://qiita.com/nxted_sapporo/items/7d56bb28352eec858846" target="_blank">GoogleFormの回答をGoogleChatに通知したい</a>
<a href="https://qiita.com/nxted_sapporo/items/5d466abb9e84619a2faf">GoogleFormの回答が条件に当てはまる場合にメールで通知を送りたい</a>

今回は、以前に作成したスクリプトからエラー通知のメールが届いたため、エラーの内容と通知の設定について確認していきたいと思います。

### 届いたエラーメール
エラーメールには、スクリプトの実行に関する情報が書いてありました。エラーの原因が特定しやすくなるので、詳細に記載されているのはありがたいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3843084/05b649cf-950c-be80-f66c-8873a5884e59.png)


### GASを確認する
#### プロジェクトの詳細
メールの "click_here" を押下でGASの「プロジェクトの詳細」画面に遷移します。

GASからは「トリガー」＞画面右の「…」から遷移できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3843084/f0f48085-7cba-13da-50ca-e91e1b3d0f4c.png)


プロジェクトの詳細画面では、エラー率や実効数などを図でわかりやすく表示してくれています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3843084/77b716d7-123a-5f32-c5a7-cf1476902abf.png)

```7日間の概要
実行数:1,788
エラー率:0.06%
```
実行数とエラー率を使って計算してみたところ、エラーは7日間で1回だけのようでした。

#### エラー通知の設定
次にエラー通知の設定について確認してみます。
画面左のメニューから「トリガー」を押下で過去に設定したトリガーが一覧表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3843084/6a76c165-2853-e65b-f18d-b8f48a3401d6.png)


右側のペンのマークから「トリガーを編集」することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3843084/d449ee04-177f-6bbe-a9ad-50da8a0fc223.png)


ここで確認したいのが「エラー通知設定」です。
現在は「毎日通知を受け取る」が選択されています。

「毎日通知を受け取る」の場合、エラーが起きた次の日に前日に起こったエラーをまとめて通知してくれます。
個人的にはエラーが起きたらすぐに通知してほしいので設定を変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3843084/77b9e232-e715-9af1-7317-c11357565aed.png)


「今すぐ通知を受け取る」を選択している場合と、エラーが起きる度、都度通知してくれます。

※トリガー設定の変更を行った方は忘れずに「保存」してください。

#### 実行数の確認
次にエラーが起きた実行を確認します。
画面左のメニューから「実行数」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3843084/711838be-75c6-5117-df09-6c468241ccb7.png)


今までの実行履歴が一覧で表示されます。
5分おきに実行する設定にしていたので実行履歴が多く、エラーが起きたのがどの実行時だったのか特定が難しいです。

エラーが起きた実行のみに絞り込んで表示させます。
画面上の「フィルタを追加」＞「ステータス」を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3843084/34c59572-1f4f-18fd-e2c8-a8f5a1110892.png)


「失敗しました」を選択＞「適応」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3843084/d7061bce-aadb-ab81-d14e-efb1f271f314.png)


エラーが起きた実行の絞り込みに成功しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3843084/387fa53b-1957-5300-832c-3fcd9810bc8f.png)


指定の実行行を押下で詳細が確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3843084/2a9ae9bc-352a-e4dd-a0d6-fafba94859f4.png)

メールの内容とあっているため、通知がきたのはこちらの実行についてで間違いなさそうです。

```エラーメッセージ
We're sorry, a server error occurred while reading from storage. Error code INTERNAL.
```
エラーメッセージは、ストレージの読み取り中にサーバーエラーが起きたという内容です。

### エラーの原因
1度しかエラーが発生していないこと。
エラー発生日周辺でスクリプトの修正を行おうとしていた気がすること。
この2点から「スクリプトのオーナー以外のユーザーでスクリプトを実行しようとした」ことが今回のエラーの原因ではないかと推測しています。
参照：https://blog.ametsuyu.com/gas_err01/

まだ見たことはありませんが他にもいろいろなエラーを教えてくれるようです。
参照：https://qiita.com/yamabe08/items/01e0335a07704a0d6224

### 最後に
今回はエラーが単発的なものだったこともあり対策は行いませんでした。
今後、もし他のエラーが発生した際には通知を活用して対応していきたいです。
ご覧いただきありがとうございました。