From fa2ff19572c0a13f0a551f5cba2bc6fb6f6848b6 Mon Sep 17 00:00:00 2001 From: Loewy Date: Wed, 1 Jul 2026 14:41:21 -0700 Subject: [PATCH 1/2] Add storage limit enforcement schema --- src/index.tsx | 17 +++++++++++++++-- src/schema.gql | 14 ++++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 8401e87..85567cb 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -300,6 +300,7 @@ export type DeployedConfigGql = { firebase: Scalars["Boolean"]["output"]; minimumAllowedAppVersion: Scalars["String"]["output"]; quotaEnforcementEnabled: Scalars["Boolean"]["output"]; + storageLimitEnforcementEnabled: Scalars["Boolean"]["output"]; subscriptionGatingEnabled: Scalars["Boolean"]["output"]; }; @@ -2287,7 +2288,7 @@ export type GetShotsResult = { export type GetUploadLinkErrors = { __typename?: "GetUploadLinkErrors"; - error: MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErr; + error: MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErrStorageLimitExceededErr; }; export type GetUploadLinkReturn = { @@ -2391,13 +2392,14 @@ export type MustHaveSetForUploadLinkErr = { resolution?: Maybe; }; -export type MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErr = +export type MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErrStorageLimitExceededErr = | InitUploadAlreadyCompletedErr | MustHaveSetForUploadLinkErr | NoInitForChunkedUploadErr | ProcessingFailedErr | SegmentAlreadyUploadedErr + | StorageLimitExceededErr | TooManyInitUploadsErr | TooManyProfileImageUploadsErr; @@ -3410,6 +3412,15 @@ export enum SpinTypeEnum { Unknown = "UNKNOWN", } +export type StorageLimitExceededErr = { + __typename?: "StorageLimitExceededErr"; + reason: Scalars["String"]["output"]; + remainingStorageBytes?: Maybe; + retainedStorageLimitBytes?: Maybe; + retainedStorageUsedBytes: Scalars["BigInt"]["output"]; + tierName: Scalars["String"]["output"]; +}; + export type StorageStatusGql = { __typename?: "StorageStatusGQL"; isNearLimit: Scalars["Boolean"]["output"]; @@ -7191,6 +7202,7 @@ export type GetUploadLinkMutation = { }; } | { __typename?: "SegmentAlreadyUploadedErr"; segmentId: number } + | { __typename?: "StorageLimitExceededErr" } | { __typename?: "TooManyInitUploadsErr" } | { __typename?: "TooManyProfileImageUploadsErr" }; } @@ -7233,6 +7245,7 @@ export type GetHlsInitUploadLinkMutation = { } | { __typename?: "ProcessingFailedErr" } | { __typename?: "SegmentAlreadyUploadedErr" } + | { __typename?: "StorageLimitExceededErr" } | { __typename?: "TooManyInitUploadsErr"; linksRequested: number } | { __typename?: "TooManyProfileImageUploadsErr" }; } diff --git a/src/schema.gql b/src/schema.gql index f87bd38..b636363 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -714,6 +714,7 @@ type DeployedConfigGQL { minimumAllowedAppVersion: String! subscriptionGatingEnabled: Boolean! quotaEnforcementEnabled: Boolean! + storageLimitEnforcementEnabled: Boolean! bannerMessages: [BannerGQL!]! defaultAndroidRecordingFormat: StreamSegmentTypeEnum! bucketUrl: String! @@ -1525,10 +1526,10 @@ type GetUploadLinkReturn { union UploadLinkGetUploadLinkErrors = UploadLink | GetUploadLinkErrors type GetUploadLinkErrors { - error: MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErr! + error: MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErrStorageLimitExceededErr! } -union MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErr = +union MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErrStorageLimitExceededErr = MustHaveSetForUploadLinkErr | SegmentAlreadyUploadedErr | ProcessingFailedErr @@ -1536,6 +1537,7 @@ union MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoI | TooManyProfileImageUploadsErr | InitUploadAlreadyCompletedErr | TooManyInitUploadsErr + | StorageLimitExceededErr type MustHaveSetForUploadLinkErr { resolution: Boolean @@ -1561,3 +1563,11 @@ type InitUploadAlreadyCompletedErr { type TooManyInitUploadsErr { linksRequested: Int! } + +type StorageLimitExceededErr { + reason: String! + tierName: String! + retainedStorageUsedBytes: BigInt! + retainedStorageLimitBytes: BigInt + remainingStorageBytes: BigInt +} From 459e89d8b82b96d52c47fb8f8c89bcc0fae684c4 Mon Sep 17 00:00:00 2001 From: Loewy Date: Wed, 1 Jul 2026 14:50:45 -0700 Subject: [PATCH 2/2] Select storage limit error fields --- src/index.tsx | 16 +++++++++++++++- src/operations/video_upload.gql | 7 +++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/index.tsx b/src/index.tsx index 85567cb..1b41a7f 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -7245,7 +7245,14 @@ export type GetHlsInitUploadLinkMutation = { } | { __typename?: "ProcessingFailedErr" } | { __typename?: "SegmentAlreadyUploadedErr" } - | { __typename?: "StorageLimitExceededErr" } + | { + __typename?: "StorageLimitExceededErr"; + reason: string; + tierName: string; + retainedStorageUsedBytes: any; + retainedStorageLimitBytes?: any | null; + remainingStorageBytes?: any | null; + } | { __typename?: "TooManyInitUploadsErr"; linksRequested: number } | { __typename?: "TooManyProfileImageUploadsErr" }; } @@ -15509,6 +15516,13 @@ export const GetHlsInitUploadLinkDocument = gql` ... on TooManyInitUploadsErr { linksRequested } + ... on StorageLimitExceededErr { + reason + tierName + retainedStorageUsedBytes + retainedStorageLimitBytes + remainingStorageBytes + } } } } diff --git a/src/operations/video_upload.gql b/src/operations/video_upload.gql index 18baff0..4ed9377 100644 --- a/src/operations/video_upload.gql +++ b/src/operations/video_upload.gql @@ -67,6 +67,13 @@ mutation GetHlsInitUploadLink($videoId: Int!) { ... on TooManyInitUploadsErr { linksRequested } + ... on StorageLimitExceededErr { + reason + tierName + retainedStorageUsedBytes + retainedStorageLimitBytes + remainingStorageBytes + } } } }