使用库的 Web 应用程序显示我们很抱歉,从存储读取时发生服务器错误。某些用户的错误代码 NOT_FOUND

Web Application using a library shows We're sorry, a server error occurred while reading from storage. Error code NOT_FOUND to some users

We're sorry, a server error occurred while reading from storage. Error code NOT_FOUND (simple onOpen trigger calling functions from a library), but in my case I had a web application. The solution from the top answer 相同的错误消息,使用版本而不是 head 部署不适用,因为我的 Web 应用程序已设置为使用库版本。对库稍作修改后出现问题。

  1. 网络应用程序运行良好,但我需要进行更改。
    • 我的网络应用程序使用全局变量来处理多个设置。
  2. 我对库进行了更改并创建了一个新版本
    • 更改是将文字字符串从一个数组移动到另一个数组。
  3. 我更新了网络应用程序中的库版本号。
  4. 网络应用程序对我的帐户工作正常,但对其他帐户不工作

网络应用程序使用 Google 云标准项目,仅供内部使用。该库由其他 Google Apps 脚本项目使用。它有多个命名空间 (var myNamespace = ((ns) => { /** some stuff here */ return ns})({})),其中大部分都专注于使用单个服务(FormApp、SpreadsheetApp、DriveApp),但只有少数用于 Web 应用程序。

我无法重现问题,所以我认为这与特定项目有关。禁用 V8 意味着太多的工作,即我使用了很多 constlet、箭头函数和旧运行时不支持的其他东西。

两个解决方法解决了这个问题,none 个是“完美的”。

  1. 用一个副本替换库(相同的代码,不同的项目URL/ID和版本号)
  2. 进行新的 web-app 部署(不同 web-app URL)

第一个的主要问题是我必须使用相同的库更新其他项目,第二个的主要问题是新部署有不同 URL我必须通知网络应用程序新用户 URL,可能需要更改书签/更新笔记。

最后我决定使用第二个,因为还有其他项目依赖库来共享通过库共享的解决方案设置 PropertiesService.getScriptProperties()