Skip to content

Behavior differences

Supported Worker API behavior is tracked against Workers runtime APIs. The differences below come from single-node topology and the pinned workerd. Cloudflare products that are not provided: Unsupported.

Topic Behavior Docs
Outbound fetch / sockets / node:net / node:tls Shared native workerd Network(allow=["network","local"], deny=["unix","unix-abstract"]); host-routable public, private, loopback, link-local, and metadata IPs are reachable TCP sockets
Named Service/DO Fetcher.connect Declared capability tunnel, not a second general outbound
CF IP-range block / self-connect detector / SMTP 25 Not provided
Runtime / binding-backend / workerd-internal listeners Loopback
Control / data listeners Default loopback; an operator may expose them
Destination filtering, network isolation, ingress, and SMTP egress policy Operator-owned through the host firewall, namespace, container, or VM
Request-scoped CPU / subrequest / simultaneous-connection quotas The pinned workerd standalone process does not enforce them yet Limits
LimitEnforcer subrequest accounting No-op; getLimitsExceeded() always reports none
Explicit Dynamic Worker limits Rejected natively, including an empty object; default CPU/memory/subrequest enforcement belongs to W2 Bindings
Unix-socket denial, product durable limits, handle cleanup, process supervision Still apply
Other numeric ceilings Limits
Deploy authority One local SQLite authority and one supervised runtime generation Versions and deployments
Global rollout / placement / traffic splitting / account management / billing control plane Not provided
Static Assets Immutable deployment content on the selected Local/S3 authority; routing and bindings covered Static Assets
Global CDN placement / replication / purge propagation / product quotas Not provided
Service Bindings Default / named fetch and RPC within one platform authority Bindings
Cross-region placement / global service discovery Not provided
Target admission, deployment pins, capability lifetime, recovery Local and fail closed
Cron UTC only, five fields, plus documented local Quartz-like extensions Cron Triggers
Cron recovery At most the newest slot within misfire grace; no full downtime replay
Cron known failures Configured bounded local retry unless noRetry() is called
Cron unknown dispatch Consumes a delivery attempt; retries only within budget and a fixed 15-minute deadline
Topic Behavior Docs
KV topology Single-node SQLite authority; no global replication or edge-cache propagation timing KV
R2 Object bytes held by the selected single-node Local or S3-compatible authority R2
R2 global placement / replication Not provided
D1 topology Single local-primary SQLite authority D1
D1 read-replica / region routing Not provided
D1 served_by / region / colo metadata / billing counters Not provided
D1 bookmarks Opaque bookmarks preserve same-database local sequential visibility
D1 rows_read / rows_written Stable local SQLite execution counters
D1 dump() Current hosted non-alpha dump() is rejected
Topic Behavior Docs
Durable Object placement Placed on the owning instance’s local workerd process Durable Objects
Location hints / jurisdiction / global migration No geographic scheduling effect
Queues durability Single-node scheduler.sqlite; at-least-once delivery Queues
Queues global FIFO Not provided
Queues unknown native dispatch Retains lease and does not consume tenant retry budget; later delivery can repeat the same attempt number
Workflows execution Local SQLite authority Workflows
Workflows callbacks At-least-once until result commits; replay skips durably completed callbacks
Workflows external effects Do not roll back with Workflow snapshots
Workflows cross-region execution / global placement / dashboard / observability Not provided
Topic Behavior Docs
Cache authority Workers Cache and Cache API are single-node local authority Workers Cache, Cache API
Automatic caching Requires explicit s-maxage or max-age
Heuristic TTL / global replication / purge propagation Not provided
Tiered cache / Cache Rules / Cache Deception Armor / plan-dependent behavior Not provided
Default object size 16 MiB per cached object; 1 GiB logical body bytes per Worker
Live values ocd capabilities --json; see Limits
Images Bounded local raster transform binding, not hosted Cloudflare Images Images
Hosted delivery / upload / signing, URL transforms, video, AI upscale, product quotas Out of scope

open-compute:manual AI Search is an explicit API superset, not a compatibility deviation. Only open-compute:ai-search types and the namespaced openComputeCreateManual / openComputeUpsert methods expose it. Official Cloudflare management routes, source enums, item shapes, and conformance counts remain unchanged.

Local native extensions ([extensions.<name>], facade-only HOST, OCH1/OCP2 Provider attach) are likewise an open-compute superset. They are not Cloudflare hosted Worker capabilities and are not counted in the Worker API inventory. See Extensions.