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.edgeConfigSyncingEnabled
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 sync # the one network call: fetch the change feed npx mendapi scan --repo . # local scan, nothing leaves your machine
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
- vercel breaking-change guide — every tracked vercel entry on one page, with fixability verdicts.
- Vercel SDK v1.28 migration — the full migration guide with pack-backed fixes.
- 11 Vercel spec pairs: a real 12-endpoint removal, and the release notes that cried breaking — the long-form methodology report behind this provider's tracked changes.
- 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.