cd /news/ai-search/breaking-cloudflare-type-can-now-ret… · home › topics › ai-search › article
[ARTICLE · art-168197] src=driftwatch.et ↗ pub= topic=ai-search verified=true sentiment=· neutral

Cloudflare: type can now return "d1"

Cloudflare's AI Search API can now return "d1" as a value for result.type on POST /accounts/{account_id}/ai-search/instances, adding to the existing "r2", "web-crawler" and null values. The change, described as additive by producer-side tools, also applies to the GET, PUT and DELETE instance endpoints and to the namespaced instance endpoints, and breaks exhaustive switches, strict parsers and generated client enums that lack a "d1" branch.

read1 min views1 publishedNov 11, 2026

What changed #

Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.

Affects result.type on POST /accounts/{account_id}/ai-search/instances.

New value: d1.

can now return "d1"

Who is affected #

Code that reads POST /accounts/{account_id}/ai-search/instances (result.type).

Before and after #

Where Before After
POST /accounts/{account_id}/ai-search/instances · result.type "r2", "web-crawler", null "d1", "r2", "web-crawler", null
GET /accounts/{account_id}/ai-search/instances · result[].type "r2", "web-crawler", null "d1", "r2", "web-crawler", null
GET /accounts/{account_id}/ai-search/instances/{id} · result.type "r2", "web-crawler", null "d1", "r2", "web-crawler", null
PUT /accounts/{account_id}/ai-search/instances/{id} · result.type "r2", "web-crawler", null "d1", "r2", "web-crawler", null
DELETE /accounts/{account_id}/ai-search/instances/{id} · result.type "r2", "web-crawler", null "d1", "r2", "web-crawler", null
GET /accounts/{account_id}/ai-search/namespaces/{namespace}/instances · result[].type "r2", "web-crawler", null "d1", "r2", "web-crawler", null
POST /accounts/{account_id}/ai-search/namespaces/{namespace}/instances · result.type "r2", "web-crawler", null "d1", "r2", "web-crawler", null
GET /accounts/{account_id}/ai-search/namespaces/{namespace}/instances/{id} · result.type "r2", "web-crawler", null "d1", "r2", "web-crawler", null
PUT /accounts/{account_id}/ai-search/namespaces/{namespace}/instances/{id} · result.type "r2", "web-crawler", null "d1", "r2", "web-crawler", null
DELETE /accounts/{account_id}/ai-search/namespaces/{namespace}/instances/{id} · result.type "r2", "web-crawler", null "d1", "r2", "web-crawler", null

Code that breaks #

switch (response.result.type) {
  // existing branches …
  // no branch for "d1"
  default:
    throw new Error("unexpected type");
}

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

── more in #ai-search 4 stories · sorted by recency
── more on @cloudflare 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/breaking-cloudflare-…] indexed:0 read:1min 2026-11-11 · —