← All breaking-change reports

Vercel API breaking change: response-prop-removed on GET /v1/installations/{integrationConfigurationId}/resources/{resourceId}

vercel · breaking · upstream source

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

Pre-release. Change data is recorded from upstream provider releases, changelogs and OpenAPI spec diffs; every article links its source.