Driftwatch

Vercel / Vercel REST API /

Breakingdirection flip: their tools call this safe

Response field username is no longer guaranteed

What changed

Producer-side tools call this non-breaking. For a consumer it is a null dereference on an unknown future date.

Affects payload.rollbackDescription.username on UserEvent reachable from 1 operation. Nothing fails at the call; it fails wherever the value is finally used, which is usually somewhere else entirely.

no longer guaranteed present

Who is affected

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

Before and after

WhereBeforeAfter
UserEvent.payload.rollbackDescription.usernamealways presentmay be missing
PATCH /v1/projects/{projectId}/microfrontends · rollbackDescription.usernamealways presentmay be missing
GET /v1/microfrontends/groups/{groupId}/projects · projects[].rollbackDescription.usernamealways presentmay be missing
POST /v1/projects/{idOrName}/avatar · rollbackDescription.usernamealways presentmay be missing
DELETE /v1/projects/{idOrName}/avatar · rollbackDescription.usernamealways presentmay be missing
GET /v10/projects · projects[].rollbackDescription.usernamealways presentmay be missing
POST /v11/projects · rollbackDescription.usernamealways presentmay be missing
GET /v9/projects/{idOrName} · rollbackDescription.usernamealways presentmay be missing
PATCH /v9/projects/{idOrName} · rollbackDescription.usernamealways presentmay be missing

Code that breaks

// response.payload.rollbackDescription.username may now be absent or null
const username = response.payload.rollbackDescription.username ?? fallback;

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