尝试创建新的 Google API 项目时出现 FAILED_PRECONDITION

Posted

技术标签:

【中文标题】尝试创建新的 Google API 项目时出现 FAILED_PRECONDITION【英文标题】:FAILED_PRECONDITION when trying to create a new Google API project 【发布时间】:2017-08-30 02:35:00 【问题描述】:

尝试在https://code.google.com/apis/console为 Google API 创建新项目时遇到错误

我希望错误是暂时的,但我已经有几周无法创建新项目了。

错误似乎已经改变,因为它曾经包含服务器 ip 信息和许多其他数据。删除了一些潜在私人信息的示例:

APPLICATION_ERROR;google.cloudresourcemanager.projects.v1beta1/DeveloperProjects.CreateProject;com.google.apps.framework.request.StatusException: 通用::FAILED_PRECONDITION: ;AppErrorCode=9;StartTimeMs=1489595147198;tcp;Deadline(sec)=50.0;ResFormat=UNCOMPRESSED;ServerTimeSec=0.027545452117919922;LogBytes=256;FailFast;EffSecLevel=none;ReqFormat=UNCOMPRESSED;ReqID=已删除 ;GlobalID=已移除;Server=ip:端口

现在错误要短得多,尽管似乎仍然与相同的原因有关:

com.google.apps.framework.request.StatusException: generic::FAILED_PRECONDITION:

仪表板中的微调器似乎永远在旋转,而错误会在几秒钟后出现在警报下方。我尝试了许多项目名称,但都失败并出现相同的错误。

我是否缺少某种类型的配额来防止这种情况发生?配额菜单项要求我选择一个我没有的项目。

点击错误会带我进入带有以下消息的页面:

您无权对所选资源执行操作。

【问题讨论】:

@Nabern 即使我在创建新项目时也遇到了类似的问题。似乎是 Google API 中的一些重大问题。 在我的情况下,我的 gmail 帐户没有某些权限,当我使用新帐户时,我的公司阻止了这些权限,但它对我来说没有问题 【参考方案1】:

确保为尝试创建项目的用户启用了 Google Developers Console。

Admin.google.com > 应用程序 > 其他 Google 服务 > Google Developers Console 并为任何需要它的组织或用户打开。

【讨论】:

Google Play 开发者控制台的设置是否相同?我们肯定已经发布了具有相同组织的 android 应用程序,所以我认为它已经开启。转到 admin.google.com 只是重定向到 apps.google.com/user/hub,所以我不确定这是否告诉我我没有查看它的权限,或者他们是否重新设计了该流程。 不,这不是同一个设置。有一个用于“Google Play Developers Console”,一个用于“Google Developers Console” 感谢@AndrewL,为我解决了这个问题,显然我自己的域没有这个。【参考方案2】:

除了@AndrewL 在他的解决方案中提供的原因之外,似乎还有另一个可能的原因。

简答: 当我尝试通过 Terraform 将新的 GCP 项目与我们的计费帐户相关联时,我遇到了同样的错误。我们的计费帐户默认限制为 5 个项目(我们已经遇到过),这阻止了新帐户的关联并生成了 Error 400: Precondition check failed., failedPreconditionerror 消息。为了解决这个问题,我必须先移除/删除其中一个已关联的项目,然后才能添加新项目。

长答案: 这是我在 Terraform 中遇到的错误消息(敏感数据和 ID 已编辑):

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  ~ module.<MY MODULE PATH>.project
      billing_account: "" => "<MY BILLING ACCOUNT ID>"


Plan: 0 to add, 1 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

module.<MY MODULE PATH>.project: Modifying... (ID: <MY PROJECT ID>)
  billing_account: "" => "<MY BILLING ACCOUNT ID>"

Error: Error applying plan:

1 error(s) occurred:

* module.<MY MODULE PATH>.project: 1 error(s) occurred:

* google_project.project: Error setting billing account "<MY BILLING ACCOUNT ID>" for project "projects/<MY PROJECT ID>": googleapi: Error 400: Precondition check failed., failedPrecondition

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.

我的结算帐户最多有 5 个项目。作为测试,我删除了其中一个项目,然后再次运行 Terraform。然后它成功地将新项目添加到计费帐户。为了仔细检查,我尝试将另一个新项目添加到结算帐户(将金额推至 6),然后再次收到相同的错误消息。

直接删除其中一个相关项目也可以。

按理说,为您的结算帐户的关联项目请求增加限制也可以解决此问题。

【讨论】:

【参考方案3】:

另一个可能的原因是组织政策,拒绝 ORG/文件夹/项目级别的特定 API。

【讨论】:

【参考方案4】:

此错误的另一个可能原因是访问 .xlsx 文件。如果您使用 Google 电子表格访问此文件,则需要通过选择顶部“文件”菜单中的可用选项将 .xlsx 文件保存为 Google 表格。

谢谢

【讨论】:

以上是关于尝试创建新的 Google API 项目时出现 FAILED_PRECONDITION的主要内容,如果未能解决你的问题,请参考以下文章

尝试在我的应用中集成 Google Play 游戏时出现 API 异常

尝试使用 Google Maps API 旋转地图时出现问题

当我尝试将 google place 自动完成 API 与 Axios 一起使用时出现 CORS 错误

创建新的基于文档的核心数据项目时出现问题

查询 Google Play Developer API 时出现意外错误

尝试通过 API 删除 gmail 邮件时出现 401 错误