Driftwatch

Vercel / Vercel REST API /

Breaking

Response field email removed

What changed

Reads of this field return undefined, and the failure surfaces wherever that value is used rather than at the call.

Affects UserEvent reachable from 1 operation.

Who is affected

Code that reads Vercel's UserEvent objects, used by 1 Vercel operation.

Before and after

WhereBeforeAfter
UserEvent.payload.newOwner.emailpresentabsent
UserEvent.payload.newOwner.emailDomainspresentabsent
UserEvent.payload.newOwner.emailNotificationspresentabsent
UserEvent.payload.newOwner.enablePreviewFeedbackpresentabsent
UserEvent.payload.newOwner.importFlowGitNamespaceIdpresentabsent
UserEvent.payload.newOwner.acceptanceStatepresentabsent
UserEvent.payload.newOwner.isDomainResellerpresentabsent
UserEvent.payload.newOwner.removedBillingSubscriptionAtpresentabsent
UserEvent.payload.newOwner.abusepresentabsent
UserEvent.payload.newOwner.acceptedAtpresentabsent
UserEvent.payload.newOwner.activeDashboardViewspresentabsent
UserEvent.payload.newOwner.avatarpresentabsent
UserEvent.payload.newOwner.billingpresentabsent
UserEvent.payload.newOwner.blockReasonpresentabsent
UserEvent.payload.newOwner.blockedpresentabsent
UserEvent.payload.newOwner.createdpresentabsent
UserEvent.payload.newOwner.createdAtpresentabsent
UserEvent.payload.newOwner.credentialspresentabsent
UserEvent.payload.newOwner.customerIdpresentabsent
UserEvent.payload.newOwner.dataCachepresentabsent
UserEvent.payload.newOwner.defaultTeamIdpresentabsent
UserEvent.payload.newOwner.deletedAtpresentabsent
UserEvent.payload.newOwner.deploymentSecretpresentabsent
UserEvent.payload.newOwner.dismissedTeamspresentabsent
UserEvent.payload.newOwner.dismissedToastspresentabsent
UserEvent.payload.newOwner.favoriteProjectsAndSpacespresentabsent
UserEvent.payload.newOwner.featureBlockspresentabsent
UserEvent.payload.newOwner.importFlowGitNamespacepresentabsent
UserEvent.payload.newOwner.importFlowGitProviderpresentabsent
UserEvent.payload.newOwner.isEnterpriseManagedpresentabsent
UserEvent.payload.newOwner.isMFAEnforcedpresentabsent
UserEvent.payload.newOwner.isZeitPubpresentabsent
UserEvent.payload.newOwner.maxActiveSlotspresentabsent
UserEvent.payload.newOwner.maxTrialspresentabsent
UserEvent.payload.newOwner.mfaConfigurationpresentabsent
UserEvent.payload.newOwner.namepresentabsent
UserEvent.payload.newOwner.northstarMigrationpresentabsent
UserEvent.payload.newOwner.opportunityIdpresentabsent
UserEvent.payload.newOwner.orbCustomerIdpresentabsent
UserEvent.payload.newOwner.overageMetadatapresentabsent
UserEvent.payload.newOwner.overageUsageAlertspresentabsent
UserEvent.payload.newOwner.phoneNumberpresentabsent
UserEvent.payload.newOwner.platformVersionpresentabsent
UserEvent.payload.newOwner.preferredScopesAndGitNamespacespresentabsent
UserEvent.payload.newOwner.preventAutoBlockingpresentabsent
UserEvent.payload.newOwner.projectCardWidgetPreferencespresentabsent
UserEvent.payload.newOwner.projectDomainsLimitpresentabsent
UserEvent.payload.newOwner.remoteCachingpresentabsent
UserEvent.payload.newOwner.removedAliasesAtpresentabsent
UserEvent.payload.newOwner.removedConfigurationsAtpresentabsent
UserEvent.payload.newOwner.removedDeploymentsAtpresentabsent
UserEvent.payload.newOwner.removedDomiansAtpresentabsent
UserEvent.payload.newOwner.removedEdgeConfigsAtpresentabsent
UserEvent.payload.newOwner.removedEventsAtpresentabsent
UserEvent.payload.newOwner.removedProjectsAtpresentabsent
UserEvent.payload.newOwner.removedSecretsAtpresentabsent
UserEvent.payload.newOwner.removedSharedEnvVarsAtpresentabsent
UserEvent.payload.newOwner.resourceConfigpresentabsent
UserEvent.payload.newOwner.resourceLimitspresentabsent
UserEvent.payload.newOwner.secondaryEmailspresentabsent
UserEvent.payload.newOwner.sfdcIdpresentabsent
UserEvent.payload.newOwner.siftRoutepresentabsent
UserEvent.payload.newOwner.siftScorepresentabsent
UserEvent.payload.newOwner.siftScorespresentabsent
UserEvent.payload.newOwner.softBlockpresentabsent
UserEvent.payload.newOwner.speedInsightsFreeUsageAlertpresentabsent
UserEvent.payload.newOwner.stagingPrefixpresentabsent
UserEvent.payload.newOwner.sysTokenpresentabsent
UserEvent.payload.newOwner.teamspresentabsent
UserEvent.payload.newOwner.testAccountExpiresAtpresentabsent
UserEvent.payload.newOwner.trialTeamIdpresentabsent
UserEvent.payload.newOwner.trialTeamIdspresentabsent
UserEvent.payload.newOwner.typepresentabsent
UserEvent.payload.newOwner.updatedAtpresentabsent
UserEvent.payload.newOwner.usageAlertspresentabsent
UserEvent.payload.newOwner.versionpresentabsent

Code that breaks

// response.payload.newOwner.email is now undefined
const email = response.payload.newOwner.email;

Based on Vercel’s published API specification. How severity is decided.