Respect Gmail retry-after in messaging throttle (#17850)

Gmail 429/403 rate-limit responses include an explicit retry-after
timestamp, usually ~15 minutes out.

The exponential backoff starts at 1 minute, so the channel burns through
all 5 retry attempts before the window actually closes and gets marked
as permanently failed.

Adds throttleRetryAfter to the message channel and uses max(backoff,
retryAfter) in isThrottled().
This commit is contained in:
neo773
2026-02-13 22:50:37 +05:30
committed by GitHub
parent 84afbb4d2c
commit d54b713264
21 changed files with 1235 additions and 866 deletions
@@ -517,6 +517,23 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
twentyStandardApplicationId,
now,
}),
throttleRetryAfter: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'throttleRetryAfter',
type: FieldMetadataType.DATE_TIME,
label: 'Throttle Retry After',
description: 'Throttle Retry After',
icon: 'IconClock',
isNullable: true,
isUIReadOnly: true,
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
connectedAccount: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,