unity
unity.com · Storage · 3 records · JSON
- Unity Cloud Content Delivery (CCD) Storagefails: egressnational-idno cardI
- unity asset manager org storage (unity personal) Storagefails: quotaemail?card?R
- unity cloud save (the cloud save product, not ccd) Storagefails: quotaemail?card?R
Unity Cloud Content Delivery (CCD) Storage
fails: egressnational-idno cardI
| Free tier | Conflicting. The live UGS pricing page lists Cloud Content Delivery 'Cloud Storage — Free'. A third-party writeup of the same product reports 5 GB/month included. Unresolved; treat as small until an account test settles it. unit GB; metered on stored-bytes |
|---|---|
| Price | none stated |
| Per-object cap | not stated |
| Retention | per-object-cap: entry upload bounded by the storage allowance; request-rate: API requests currently unlimited/free; per-ip-shaping: none documented. Retention: releases are immutable snapshots, kept until deleted — good archive semantics if the quota is real. |
| Egress | Metered after a small free allowance: 'Bandwidth (CCD) 50 GB / month. After 50 GB: $0.08 per GB, After 50 TB: $0.06 per GB'. Fails the 500 GB/day serving workload by a factor of ~10 per month. free_allowance: 50 GB per month |
| Identity | national-id derived from the record's prose, not from an identity field, and no signup was executed: ontent.com/client_api/v1/buckets/{bucketId}/releases/{releaseId}/entry_by_path/content/?path=<path>. Buckets per environment x releases per bucket x promotion between buckets. Note: ' |
| Binding | none no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit |
| Interface | rest, cli rest |
| Tooling | UGS CLI (ugs ccd ...), Content Delivery Management API and Client API, plus the CCD Management SDK. Releases are content-addressed: entries carry an md5 content hash and size that must match on upload. |
| Composes with | Buckets per environment x releases per bucket x promotion between buckets. Note: 'Creating or promoting a new release does not create copies of the entries in a bucket' — promotion is a pointer, not a copy, so it does NOT multiply storage. |
| Reliability | The old CCD API-key auth and UCD CLI were deprecated in 2024 with no planned sunset after community pushback, so the write path still works but is on a deprecated auth path. Public read URLs are of the form https://{projectId}.client-api.unity3dusercontent.com/client_api/v1/buckets/{bucketId}/releases/{releaseId}/entry_by_path/content/?path=<path>. |
| Notes | Conflicting. The live UGS pricing page lists Cloud Content Delivery 'Cloud Storage — Free'. A third-party writeup of the same product reports 5 GB/month included. Unresolved; treat as small until an account test settles it. |
| Evidence rung | inferred One page read moves it to documented. |
| Checked | 2026-10-21 (inherited); stale on 2026-11-20 |
Evidence (4)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | unity.com/products/gaming-services/pricing | Cloud Content Delivery: 'Cloud Storage — Free — Free'; 'Bandwidth (CCD) 50 GB / month; After 50 GB: $0.08 per GB' |
| 2026-10-21 | garnetcode.jp/blog/2025/08/ugs_ccd/ | 'ストレージ容量 5 GB/月' (5 GB/month storage, ~$0.08/GB/mo overage) — direct contradiction of the 'Free' line |
| 2026-10-21 | docs.unity.com/en-us/ccd/faq | read URL format, md5+size content hash requirement, 'Creating or promoting a new release does not create copies of the entries in a bucket' |
| 2026-10-21 | content-api.cloud.unity3d.com/api/v1/buckets | probe: GET -> 404 {"code":5,"details":["not found"],"reason":"Not found"} — API is live and gated on a project/org token |
More fields (1)
{
"dead_end": {
"failure_class": "quota",
"why": "Conflicting. The live UGS pricing page lists Cloud Content Delivery 'Cloud Storage — Free'. A third-party writeup of the same product reports 5 GB/month included. Unresolved; treat as small until an account test settles it.",
"retry_when": null,
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (5)
$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.per_object_cap.notesnot-extracted$.per_object_cap.statednot-extracted$.retention.notesnot-extracted
unity asset manager org storage (unity personal) Storage
fails: quotaemail?card?R
| Free tier | Explicitly a hard cap: 'The plan has a non-extensible cap of 10 GB of storage ... At any given time, the total size of the assets that are currently stored in Unity Cloud can't exceed the li unit none; metered on none |
|---|---|
| Price | none stated |
| Per-object cap | not recorded |
| Retention | not recorded |
| Egress | not recorded |
| Identity | email (placeholder) not published |
| Binding | none no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit |
| Interface | unknown |
| Tooling | not recorded |
| Composes with | not recorded |
| Reliability | Explicitly a hard cap: 'The plan has a non-extensible cap of 10 GB of storage ... At any given time, the total size of the assets that are currently stored in Unity Cloud can't exceed the li |
| Notes | Explicitly a hard cap: 'The plan has a non-extensible cap of 10 GB of storage ... At any given time, the total size of the assets that are currently stored in Unity Cloud can't exceed the li |
| Evidence rung | reported |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (1)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | docs.unity.com/en-us/cloud/billing/storage-pricing | Explicitly a hard cap: 'The plan has a non-extensible cap of 10 GB of storage ... At any given time, the total size of the assets that are currently stored in Unity Cloud can't exceed the li |
More fields (1)
{
"dead_end": {
"failure_class": "quota",
"why": "Explicitly a hard cap: 'The plan has a non-extensible cap of 10 GB of storage ... At any given time, the total size of the assets that are currently stored in Unity Cloud can't exceed the li",
"retry_when": null,
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (15)
$.chainingnot-recorded$.confidence_notewithheld$.egress.termsnot-recorded$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.identity_cost.detaildefaulted$.identity_cost.kindidentity-defaulted$.interfaceinterface-unknown$.interface_detailwithheld$.limits_noteprocess$.per_object_cap.notesnot-recorded$.per_object_cap.statednot-recorded$.retention.notesprocess$.retention.statednot-recorded$.toolingnot-recorded
unity cloud save (the cloud save product, not ccd) Storage
fails: quotaemail?card?R
| Free tier | 5 GiB/month stored on the free tier, with 1M writes and 1M reads per month. Two orders of magnitude under the 500 GB bar before any chaining. unit none; metered on none |
|---|---|
| Price | none stated |
| Per-object cap | not recorded |
| Retention | not recorded |
| Egress | not recorded |
| Identity | email (placeholder) not published |
| Binding | none no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit |
| Interface | unknown |
| Tooling | not recorded |
| Composes with | not recorded |
| Reliability | 5 GiB/month stored on the free tier, with 1M writes and 1M reads per month. Two orders of magnitude under the 500 GB bar before any chaining. |
| Notes | 5 GiB/month stored on the free tier, with 1M writes and 1M reads per month. Two orders of magnitude under the 500 GB bar before any chaining. |
| Evidence rung | reported |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (1)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | unity.com/products/gaming-services/pricing | 5 GiB/month stored on the free tier, with 1M writes and 1M reads per month. Two orders of magnitude under the 500 GB bar before any chaining. |
More fields (1)
{
"dead_end": {
"failure_class": "quota",
"why": "5 GiB/month stored on the free tier, with 1M writes and 1M reads per month. Two orders of magnitude under the 500 GB bar before any chaining.",
"retry_when": null,
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (15)
$.chainingnot-recorded$.confidence_notewithheld$.egress.termsnot-recorded$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.identity_cost.detaildefaulted$.identity_cost.kindidentity-defaulted$.interfaceinterface-unknown$.interface_detailwithheld$.limits_noteprocess$.per_object_cap.notesnot-recorded$.per_object_cap.statednot-recorded$.retention.notesprocess$.retention.statednot-recorded$.toolingnot-recorded