# IMessageQueue.start() method · @imqueue/core

Source: https://imqueue.org/api/core/latest/core.imessagequeue.start/
Published: 2026-08-04
Author: @imqueue maintainers (https://github.com/imqueue)
Package: @imqueue/core 3.3.2 — generated reference, not hand-written

Starts the queue: opens its connections, joins watcher election and begins consuming, so `message` events start arriving.

**Signature:**

```typescript
start(): Promise<IMessageQueue>;
```
**Returns:**

Promise<[IMessageQueue](https://imqueue.org/api/core/latest/core.imessagequeue/)>

this queue instance

## Exceptions

TypeError when the queue was constructed without a name

## Remarks

A no-op when the queue is already started, and it may be called again after [IMessageQueue.stop()](https://imqueue.org/api/core/latest/core.imessagequeue.stop/). A reader is opened only in [IMQMode.BOTH](https://imqueue.org/api/core/latest/core.imqmode/) or [IMQMode.WORKER](https://imqueue.org/api/core/latest/core.imqmode/) mode, so a publisher-only queue never emits `message`. Unless [IMQOptions.handleSignals](https://imqueue.org/api/core/latest/core.imqoptions.handlesignals/) is disabled, this also installs process-wide signal handlers.

Required before [IMessageQueue.publish()](https://imqueue.org/api/core/latest/core.imessagequeue.publish/); [IMessageQueue.send()](https://imqueue.org/api/core/latest/core.imessagequeue.send/) starts the queue implicitly.

