Vercel API breaking change: response-prop-removed on GET /v1/installations/{integrationConfigurationId}/resources/{resourceId}
What changed
According to the OpenAPI spec diff (vercel/vercel-oas-v1.28.8-to-v1.28.9), the following surface changed:
response-prop-removed: GET /v1/installations/{integrationConfigurationId}/resources/{resourceId} -> 200 protocolSettings.experimentation.edgeConfigTokenId
Who is affected
The experimentation protocol settings fields were dropped from the single-resource read but survive on the list endpoint for the same installation.
To find out whether your repo is hit — file and line number, no code leaving your machine:
npx mendapi scan --repo .
How to fix it
mendapi ships a deterministic migration pack for this change (vercel-integration-resource-edge-config-read-move). Preview the patch locally (dry-run is the default; nothing is modified without --apply):
npx mendapi fix --repo . --migration vercel-integration-resource-edge-config-read-move
The pack is idempotent, gold-regression tested, and safe on partially migrated code.
What the migration does:
The experimentation protocol settings fields were dropped from the single-resource read but survive on the list endpoint for the same installation. Code that fetched one resource by id to read edgeConfigSyncingEnabled or edgeConfigTokenId should instead call the resources list endpoint and select the matching resource by id; the fields are returned there with identical semantics. This is a mechanical read-path substitution: same auth, same installation scope, one extra filter step over the returned array.
Before:
const res = await fetchJson(`/v1/installations/${icId}/resources/${resourceId}`);
const syncing = res.protocolSettings.experimentation.edgeConfigSyncingEnabled;
After:
const all = await fetchJson(`/v1/installations/${icId}/resources`);
const res = all.resources.find((r) => r.id === resourceId);
const syncing = res.protocolSettings.experimentation.edgeConfigSyncingEnabled;
Replacement data source: GET /v1/installations/{integrationConfigurationId}/resources (list endpoint) still returns protocolSettings.experimentation.edgeConfigSyncingEnabled and edgeConfigTokenId per resource.
Detected and tracked by mendapi — Dependabot for every API you depend on. Scans run locally; your code never leaves your machine.
Related
- All monitored providers — live change counts for vercel and 19 others.
- Migration pack catalog — every deterministic fix mendapi ships.
- Getting started — scan your repo in 30 seconds, no code leaves your machine.