Deno Deploy internally gathers events for various things that happen during the lifetime of a JavaScript isolate. These events are collected and reported to your origin server via the POST /events RPC endpoint.


Events are structured in the following form:

interface Event {
  /** The ID of the deployment that caused this event to be generated. */
  deployment_id: string;
  /** Timestamp for when this event was created, in RFC3339 format. */
  timestamp: string;
  /** The type of event. The full list of events is described below. */
    | "boot"
    | "bootFailure"
    | "log"
    | "uncaughtException"
    | "memoryLimit"
    | "timeLimit";
  /** The payload of the event. The full list of possible structures is
   * described below. */
    | BootEventPayload
    | BootFailureEventPayload
    | LogEventPayload
    | UncaughtExceptionEventPayload
    | MemoryLimitEventPayload
    | TimeLimitEventPayload;
  /** The opaque ID of the given isolate. */
  execution_id: string;
  /** The region where the event was generated. Refer to
   * for possible values. */
  region: string;
  /** The additional information associated with this event may appear here. */
  context?: JSONValue;

Example of a log event:

  "deployment_id": "my-deployment",
  "timestamp": "2022-01-01T00:00:00Z",
  "event_type": "log",
  "event": {
    "msg": "Hello, world!",
    "level": "info"
  "execution_id": "d3ec60fc-e58e-4298-bb96-71f0bc4a9abe",
  "region": "asia-east1"

Event types


This event is created when an isolate successfully boots. Not every request results in a boot event, because isolates can be re-used for multiple requests.

interface BootEventPayload {
  /** The time it took to boot the isolate, in seconds. */
  boot_time: number;


This event is created when an isolate fails to boot.

interface BootFailureEventPayload {
  /** A human readable message containing information about why the isolate
   * failed to boot. */
  msg: string;


This event is created when a log message is written from the isolate using the console API.

The log severity level is included in the event payload and is determined by which log function is used to write the message.

Console API function Severity level
console.log() info
console.debug() debug info
console.dir() info
console.dirxml() info
console.warn() warning
console.error() error
console.assert() error
console.count() info
console.countReset() info¹
console.table() info
console.time() info¹
console.timeLog() info¹
console.timeEnd() info¹ info
console.groupCollapsed() info
console.groupEnd() info
console.clear() N/A
console.trace() error

¹: The warning level may be emitted if invalid arguments are provided to the function.

interface LogEventPayload {
  /** The message that was logged. The message may contain ANSI escape codes to
   * colorize the message. */
  msg: string;
  level: "debug" | "info" | "warning" | "error";


This event is created when an uncaught exception occurs in the isolate.

interface UncaughtExceptionEventPayload {
  /** The message of the exception. */
  exception: string;


This event is created when the isolate’s memory usage exceeds the configured memory limit.

interface MemoryLimitEventPayload {


This event is created when the isolate’s CPU execution time exceeds the configured time limit.

interface TimeLimitEventPayload {