---
# @generated by sylphx-gen 0.1.0 from contracts@e145cc7cf1bc9605f2b27439e5e17ed76a1a2fd7e7021906a013f7565e4a0cd5. Do not edit.
title: "SPEND_LIMIT_REACHED"
description: "SPEND_LIMIT_REACHED (FAILED_PRECONDITION, HTTP 402): The org's spend limit is reached."
type: reference
product: platform
summary: "The org's spend limit is reached."
updated: 2026-09-28
nav: false
---

The org's spend limit is reached.

**HTTP** 402 · **gRPC** `FAILED_PRECONDITION` · [the error body](/docs/platform/errors)

## Returned by

| Method | Scope | What it does |
| --- | --- | --- |
| [`assets.assets.generate`](/docs/api/assets/generate) | `assets:write` | Records the recipes as assets and generates the variants that are missing. Each call is idempotent and works within a bounded time; call again until `pending` is 0. |
| [`build.builds.create`](/docs/api/builds/create) | `build:write` | Creates a build. The Operation is done when the controller settles it. |
| [`data.databases.create`](/docs/api/databases/create) | `data:write` | Creates a database. The Operation is done when the controller settles it. |
| [`data.kv_namespaces.create`](/docs/api/kv_namespaces/create) | `data:write` | Creates a kv namespace. The Operation is done when the controller settles it. |
| [`data.buckets.create`](/docs/api/buckets/create) | `data:write` | Creates a bucket. The Operation is done when the controller settles it. |
| [`data.search_indexes.create`](/docs/api/search_indexes/create) | `data:write` | Creates a search index. The Operation is done when the controller settles it. |
| [`events.topics.publish`](/docs/api/topics/publish) | `events:publish` | Publishes CloudEvents into a Topic, atomically. Replaying the same `source` + `id` with the same payload returns the stored event; a different payload fails with RESOURCE_ALREADY_EXISTS. |
| [`events.queues.send`](/docs/api/queues/send) | `events:publish` | Enqueues messages directly, without a Subscription. |
| [`hosting.services.create`](/docs/api/services/create) | `hosting:write` | Creates a service. The Operation is done when the controller settles it. |
| [`hosting.service_rollouts.create`](/docs/api/service_rollouts/create) | `hosting:write` | Creates a rollout. |
| [`hosting.previews.create`](/docs/api/previews/create) | `hosting:write` | Creates a preview. The Operation is done when the controller settles it. |
| [`hosting.source_links.create`](/docs/api/source_links/create) | `hosting:write` | Creates a source link. The Operation is done when the controller settles it. |
| [`localization.catalogs.sync`](/docs/api/catalogs/sync) | `localization:write` | Reads the source files and the committed translations into the catalog, then translates what is new or stale. Each call is idempotent and works within a bounded time; call again until `pending` is 0. |
| [`network.domains.create`](/docs/api/domains/create) | `network:write` | Creates a domain. The Operation is done when the controller settles it. |
| [`network.routes.create`](/docs/api/routes/create) | `network:write` | Creates a route. The Operation is done when the controller settles it. |
| [`network.egress_identities.create`](/docs/api/egress_identities/create) | `network:write` | Creates an egress identity. The Operation is done when the controller settles it. |
| [`network.private_links.create`](/docs/api/private_links/create) | `network:write` | Creates a private link. The Operation is done when the controller settles it. |
| [`observability.log_entries.write`](/docs/api/log_entries/write) | `observability:ingest` | Ingests a batch of log entries atomically. The same `Idempotency-Key` and digest replays the same batch; a different digest under the key conflicts. |
| [`observability.traces.write_spans`](/docs/api/traces/write_spans) | `observability:ingest` | Ingests a batch of spans atomically; a span's parent and time invariants are validated. Replay rules are those of WriteLogEntries. |
| [`observability.error_groups.capture`](/docs/api/error_groups/capture) | `observability:ingest` | Captures one error occurrence. It is grouped by `fingerprint` when the caller sets one, else by exception type and the symbolicated in-app stack; release is never part of the group. A new occurrence reopens a resolved group. Secrets and personal data are scrubbed by the environment's Scrubbing Policy before storage. A fingerprint-equal replay bills no second new-error unit. Under quota pressure the response says what to sample. Browsers call it with a publishable key that holds `observability:ingest` (CORS allowed, rate-limited per environment). |
| [`runners.scale_sets.create`](/docs/api/scale_sets/create) | `runners:write` | Creates a scale set. The Operation is done when the controller settles it. |
| [`sandboxes.pools.create`](/docs/api/pools/create) | `sandboxes:write` | Creates a pool. The Operation is done when the controller settles it. |
| [`sandboxes.leases.create`](/docs/api/leases/create) | `sandboxes:write` | Creates a lease: granted now and returned READY (or GRANTED when `wait_ready` is false), or refused with a typed error. There is no queue. |
