Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: Access Durable Object name via `ctx.id.name`
description: Retrieve the name of a named Durable Object from within the object itself.
products:
- durable-objects
- workers
date: 2026-03-15
---

When your Worker accesses a Durable Object via `idFromName()` or `getByName()`, the same name is now available on `ctx.id.name` inside the object — no need to pass it through method arguments or persist it in storage. This brings the runtime behavior in line with the [Workers runtime types](/workers/languages/typescript/).

This is especially useful for [alarms](/durable-objects/api/alarms/), where there is no calling client to pass the name as an argument. When an alarm handler runs, `ctx.id.name` will hold the same name the object was originally accessed with.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This is especially useful for [alarms](/durable-objects/api/alarms/), where there is no calling client to pass the name as an argument. When an alarm handler runs, `ctx.id.name` will hold the same name the object was originally accessed with.
This is especially useful for [alarms](/durable-objects/api/alarms/), where there is no calling client to pass the name as an argument. When an alarm handler runs, `ctx.id.name` will hold the same name the object was originally created with.


```js
import { DurableObject } from "cloudflare:workers";

export class ChatRoom extends DurableObject {
async getRoomName() {
// ctx.id.name returns the name passed to getByName() or idFromName()
return this.ctx.id.name;
}
}

// Worker
export default {
async fetch(request, env) {
const stub = env.CHAT_ROOM.getByName("general");
const roomName = await stub.getRoomName();
return new Response(`Welcome to ${roomName}!`);
},
};
```

`ctx.id.name` is `undefined` in the following cases:

- For Durable Objects created with `newUniqueId()`.
- When accessed via `idFromString()`, even if the ID was originally created from a name.
- For [names longer than 1,024 bytes](/durable-objects/api/id/#name).

This works the same way in local development with `wrangler dev` as it does in production. Run `npm update wrangler` to ensure you are on a version with this support.

For more information, refer to the [Durable Object ID documentation](/durable-objects/api/id/#name).

This file was deleted.