fix: restore attendeeSeatId to top-level webhook payload for backward compatibility#28528
Open
Harshithk951 wants to merge 3 commits intocalcom:mainfrom
Open
Conversation
Contributor
There was a problem hiding this comment.
2 issues found across 2 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="apps/api/v2/src/modules/deployments/deployments.service.ts">
<violation number="1" location="apps/api/v2/src/modules/deployments/deployments.service.ts:11">
P1: Field rename from `status` to `valid` breaks backward compatibility with cached payloads and may cause license validation to fail for up to 24 hours. Add backward-compatible fallback logic to handle both field names during transition.</violation>
</file>
<file name="packages/features/bookings/lib/service/RegularBookingService.ts">
<violation number="1" location="packages/features/bookings/lib/service/RegularBookingService.ts:2478">
P2: The `attendeeSeatId` restoration in webhookData may not cover the BOOKING_REQUESTED async flow. The BOOKING_REQUESTED webhook uses `queueBookingRequestedWebhook()` which enqueues only identifiers (bookingUid, userId, etc.) for later payload construction. If the downstream consumer/builder wasn't also updated to include attendeeSeatId, pending booking webhooks will still be missing this field at the top level. Verify the consumer-side payload construction (likely in WebhookTaskerProducerService or BookingPayloadBuilder) also includes attendeeSeatId, or apply the same fix there.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
b97f658 to
c89a923
Compare
Member
sahitya-chandra
left a comment
There was a problem hiding this comment.
Can you add a before and after video of the changes
Contributor
Author
|
Hi @sahitya-chandra, this is a pure backend/webhook payload change with no UI component, so a screen recording wouldn't capture the fix meaningfully. The change can be verified by:
The before/after is visible directly in the diff — the field was simply missing from the payload construction and has been restored for backward compatibility. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Fixes #28508
PR #27546 (async webhook migration) introduced a breaking change where
attendeeSeatIdwas removed from the top-level webhook payload. It isnow only accessible inside
attendees[].bookingSeat, which breaksexisting integrations that rely on the top-level
attendeeSeatIdfield.This restores
attendeeSeatIdat the top level of the webhook payloadfor backward compatibility, while keeping the new
bookingSeatstructure intact.
Visual Demo
N/A — webhook payload structure fix, no UI changes.
Mandatory Tasks
How should this be tested?
attendeeSeatIdis present at the top level of the payloadattendees[].bookingSeatstill exists (no regression)Checklist