nerikesi
@nerikesi (Nerikesi)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Exception: Service Spreadsheets failed while accessing document with id

編集履歴

2021/03/09・・・質問記事を作成。
2021/03/10・・・題名をエラーメッセージに変更。質問内容の文章を表現を一部修正。「わかっている事」を追記。
2021/03/11・・・わかっている事を追記。「感想など」を修正。
2021/03/12・・・わかっている事を追記。「感想など」を修正。
2021/03/12・・・わかっている事を追記。
2021/03/27・・・わかっている事を追記。「感想など」を修正。

解決したいこと

GASでSpreadsheet上のChartを編集しようとしたらエラーが出ます。解決方法を教えてください。

発生している問題・エラー

ScriptEditor上で実行時
Exception: Service Spreadsheets failed while accessing document with id xxxxxxxxxxxxxxxxxxxx.
Spreadsheet上にボタンを配置し実行
Exception: ドキュメント(xxxxxxxxxxxxxxxxxxxx)にアクセス中に スプレッドシートのサービスに接続できなくなりました。

「xxxxxxxxxxxxxxxxxxxx」はSpreadsheetのURLの一部にも書かれています。

該当するソースコード

  const myPieChart = mySheet.getCharts()[3].modify()
      .clearRanges()//グラフの参照範囲設定をクリア
      .addRange(mySheet.getRange(myRow,myCol,hensu1,1))//ラベルとして使用する範囲を設定
      .addRange(mySheet.getRange(myRow,myCol2,hensu1,1))//Dataとして使用する範囲を設定
      .build();
  mySheet.updateChart(myPieChart);

Errorが指している場所だけ抜粋しました。変数名などを解りやすい様に少し変えています。
わかっている事に書いた事を考えるに、ソースコードは間違っていないと予測します。

わかっている事

  1. それまで何日も動いていたのに、ある日突然動かなくなりました。
  2. 同じような事をしている他のSpreadsheetの他のGASのCode(私が作成し私が使っている、他者が使えるようにはしてない)も、同様のErrorで同日に動かなくなりました。
  3. スクリプトエディタがChart処理をしている行をエラーとして指してます。
  4. Codeの中のChart処理以外の部分は正常動いている様子です。
  5. このエラーメッセージはセルの数が5,000,000を超えた場合にも出るらしいですが、今回のケースはこれに該当しません。
  6. 新しいSpreadsheetを作成し、簡単なグラフ編集のCodeを書いてみましたが、これは正常に動きました。
  7. エラーが発生しているSpreadsheetに新しいsheetを追加して、そのsheet上で簡単なChartを作成し、gasで編集するCodeを書くと、成功しました。
  8. 再びErrorが発生していたSheetで、Errorが発生していたScriptを走らせてみると、同様のErrorが発生しました。
  9. エラーが指しているグラフを削除し、Spreadsheetのマウス操作でグラフを作り直し、Scriptを走らせてみると、同様のErrorが発生しました。
  10. Errorが発生しているSheetをコピーし、コピーされたSheet上でScriptを走らせても、同様のErrorが発生しました。
  11. Errorが発生しているSpreadsheet上で、新しいSheetを作り、Errorが起きるSheetでCtrl+Aですべてを選択し、新しいSheetに張り付けてみましたが、状況変わらず。
  12. Spreadsheet(ファイル)をコピーで複製し、Scriptを実行してみました。当然IDは変わりますが、相変わらずのError。
  13. 少しずつ違うが、同じようなことをしている SpreadSheetが5つ(5ファイル)あるので、改めて、この5つのSpreadsheetでScriptを実行してみたが、結果全て同じErrorで動きませんでした。(当然それぞれSpreadSheetのIDは異なります。)
  14. IssueTracker:156530211 "service spreadsheets timed out while accessing document with id" おそらくこのbugだと思う。
  15. 2行目にgetCharts()[3]を書いてみたが、同じエラー

感想など

Chart以外のコードは動いている様子。Chartに関してはスクリプトの頭に書いても、ケツに書いてもErrorが出る。
だけど、空のシートを新しく作って、そこにChartを新しくつくって、その新しいChartはmodify()してもErrorにならない。
つまり、このSheet上にあるChartを触ることが出来ない。
ならばと、シートをコピーしてもダメ、ファイルをコピーしてもダメ。
これならと、Sheetの中のセルを全部コピーして、新しいSheetに張り付けてもダメ。
Chartが壊れてるのかと思い、Chartを削除して、新しく作り直しても、ダメ。
SpreadsheetApp.flush();でSheetを更新してもダメ。
Utilities.sleep(10000);で、途中で時間を空けてみてもダメ。
そもそもシートのデータ量が多いのかと思ったりもしたが、5つのファイルは書き込んであるレコードの量が全然違う。
それらが、全て同時に動かなくなるなど、データ量とは思えない。

つまり、まったくわからない。
解っているのは、どうやら、Googleのバグだという事だけ。

2

3Answer

2021/3/12 私も全く同じエラーです。

Service Spreadsheets failed while accessing document with id  〜〜〜〜〜〜のエラーです。
3日前まで動いていて、昨日のトリガーでの起動でエラー出しました。

1Like

気になるのはGASのトリガーのエラー率が全然動いていないんですよね。
Googleのバグっぽい気もします。

1Like

トリガーのエラー率ですか。。
私たち(ユーザー)が書いたCodeのエラーではないので、「トリガーのエラー率」に拾われないとか?
解りませんが・・・。
既に読まれたかもしれませんが、
Exception: Service Spreadsheets Failed While Accessing Document
こちらによると、すべてを新しいシートにコピー?再構築?すると、動くというケースがあるようです。
私はこれを今後試してみるつもりですが、すでに試されているなら、結果を教えて欲しいです。
■追記
試してみましたが、私の方ではダメでした。まさかCtl+Cを使わずに、全部手打ちで新しいSheetに再構築すると動くのでしょうか。それは・・・正気の沙汰ではないので、実験できていません。。

1Like

Your answer might help someone💌