---
source_url: https://www.pubnub.com/docs/release-notes/2026/may
title: Documentation Release Notes - May 2026
updated_at: 2026-06-08T11:40:11.553Z
---

> Documentation Index
> For a curated overview of PubNub documentation, see: https://www.pubnub.com/docs/llms.txt
> For the full list of all documentation pages, see: https://www.pubnub.com/docs/llms-full.txt


# Documentation Release Notes - May 2026

May expanded the PubNub MCP Server with OAuth authentication and two new tools, published a new Event Types reference, and delivered a batch of clarity improvements across SDK and platform documentation.

The most significant MCP Server changes this month are [OAuth authentication](#mcp-server-oauth-authentication) (the hosted server no longer requires a PubNub API key at setup) and two new tools: the [Insights analytics tool](#insights-analytics-tool), which lets AI assistants query aggregated usage metrics from PubNub Insights, and [Illuminate and migration guide tools](#illuminate-and-migration-guide-tools), which complete documentation for the Illuminate tooling and add SDK and platform migration guide retrieval. The MCP Server now exposes 16 tools across five categories.

On the SDK side, we published a new [Event Types reference](#event-types-reference) that documents every client-side event payload in one place. We also documented [large message support](#large-message-support) with an interactive size calculator added across all SDK publish pages, [clarified that Access Manager and secretKey are disabled in the JavaScript SDK browser bundle](#javascript-sdk-access-manager-and-secretkey-in-web-builds), and removed the now-obsolete [enableEventEngine parameter from JavaScript Chat SDK documentation](#javascript-chat-sdk-enableeventengine-is-always-on), which is now always on, matching the behavior introduced in JavaScript SDK 11.0.0 in April.

We also published a [Functions management API in the Admin API](#functions-api-in-the-admin-api), documented [HTTP/2 support](#http2-support) on select PubNub origins, added an [interactive pricing calculator](#pricing-calculator) to the account setup page, clarified [how message deletion affects usage metrics](#deletion-impact-on-usage-metrics), and improved [Presence documentation](#presence-documentation-improvements) with several correctness fixes.

## General 🛠️

### HTTP/2 support

**Type**: Enhancement

We added an HTTP/2 section to the [Data Transport](https://www.pubnub.com/docs/general/setup/data-transport) documentation.

PubNub now supports HTTP/2 on select origins. Clients connecting to supported origins negotiate HTTP/2 automatically, with no client-side configuration required. HTTP/1.1 remains fully supported on all origins. To request HTTP/2 support for a custom origin, contact [PubNub Support](https://support.pubnub.com/).

### Pricing calculator

**Type**: Enhancement

We added an interactive pricing calculator to the [Set Up Your Account](https://www.pubnub.com/docs/general/basics/set-up-your-account) and [Docs home](https://www.pubnub.com/docs) pages.

The calculator gives you a real-time monthly cost estimate based on your expected monthly active user count. Drag the slider to your expected MAU volume to see the corresponding price tier. Pricing is the same regardless of whether you use PubNub SDKs or the REST API directly.

### Deletion impact on usage metrics

**Type**: Enhancement

We added two clarifications to the message persistence documentation.

First, in [Message Persistence](https://www.pubnub.com/docs/general/storage): deleting messages does not update usage metrics for past dates. Changes to stored data volume are reflected in the Admin Portal within 24 hours. We also clarified that per-message TTL overrides set at publish time are fixed at the time of publish. If your keyset is configured for `Unlimited` retention, a per-message TTL is ignored and the message is stored indefinitely.

Second, in [Billable Metrics](https://www.pubnub.com/docs/portal/usage/billable-metrics): metrics for past dates reflect activity at the time it occurred and are not updated by deletions.

### Functions API in the Admin API

**Type**: New feature

We published a complete Functions management API in the [Admin API](https://www.pubnub.com/docs/admin-api/functions-introduction), available in Admin API version `2026-05-26`. This is now the recommended way to manage Functions programmatically.

The new API is organized into six endpoint groups:

| Group | What it covers |
| --- | --- |
| [Packages](https://www.pubnub.com/docs/admin-api/functions-introduction) | Create, read, update, and delete function packages and list their revisions. |
| [Revisions](https://www.pubnub.com/docs/admin-api/functions-introduction) | Create and manage package revisions, list functions in a revision, and manage test inputs. |
| [Deployments](https://www.pubnub.com/docs/admin-api/functions-introduction) | Deploy revisions to keysets, start, stop, rolling-update, and delete deployments. |
| [Catalog](https://www.pubnub.com/docs/admin-api/functions-introduction) | Browse package and function blueprints and import packages from blueprints. |
| [KV Store](https://www.pubnub.com/docs/admin-api/functions-introduction) | Manage KV store entries for strings, JSON, and counters used by your functions. |
| [Secrets Storage](https://www.pubnub.com/docs/admin-api/functions-introduction) | Create, update, and delete secrets available to your functions at runtime. |

Authentication uses the standard Admin API key. For full endpoint details and request/response schemas, see the [Functions introduction](https://www.pubnub.com/docs/admin-api/functions-introduction) in the Admin API reference.

Alongside this, we marked the legacy Functions REST API as deprecated. The **Functions REST API** sidebar entry is now labeled **Functions REST API (legacy)** and the [reference page](https://www.pubnub.com/docs/serverless/functions/functions-rest-api/functions-api) includes a notice directing new integrations to the Admin API. If you currently use the legacy REST API, plan your migration to the [Admin API Functions endpoints](https://www.pubnub.com/docs/admin-api/functions-introduction).

## SDKs 📦

### Event types reference

**Type**: New feature

We published a new [Event Types](https://www.pubnub.com/docs/general/events) reference page that documents all client-side event types and the payload fields each one delivers to SDK listener callbacks.

The page covers six event types:

| Event type | Triggered when |
| --- | --- |
| Message | A message is published to a subscribed channel. |
| Signal | A signal is sent to a subscribed channel. |
| Presence | A user joins, leaves, or times out on a subscribed channel. |
| App Context | A channel, user, or membership record is created, updated, or deleted. |
| File | A file is shared on a subscribed channel. |
| Message Action | A reaction or action is added to or removed from a message. |

Each entry lists field names and descriptions. The page also distinguishes client-side events (delivered via SDK listeners in real time) from server-side events (processed via [Events & Actions](https://www.pubnub.com/docs/serverless/events-and-actions/events) webhooks and queues). For SDK-specific listener setup, see [Receive Messages](https://www.pubnub.com/docs/general/messages/receive).

### Large message support

**Type**: Enhancement

We updated publish documentation across all PubNub SDKs to clarify the 32 KiB hard limit on message size, and added an interactive message size calculator to the [Publish Messages](https://www.pubnub.com/docs/general/messages/publish) and [Limits](https://www.pubnub.com/docs/general/setup/limits) pages.

The interactive calculator lets you enter a JSON payload and see its encoded byte size measured against the 32 KiB limit, so you can identify payloads that would be rejected before you send them.

The size note was added to all SDK publish and subscribe API reference pages. If your message approaches or exceeds the limit, consider splitting it, compressing the payload client-side before publishing, or publishing a reference to content stored in [Message Persistence](https://www.pubnub.com/docs/general/storage).

### JavaScript SDK Access Manager and secretKey in web builds

**Type**: Enhancement

We added clarifications to the [JavaScript SDK Configuration](https://www.pubnub.com/docs/sdks/javascript/api-reference/configuration) and [Access Manager](https://www.pubnub.com/docs/sdks/javascript/api-reference/access-manager) API reference pages explaining that Access Manager and `secretKey` are disabled in the pre-built web/browser JavaScript SDK bundle.

In browser environments (including the CDN version):

* Providing `secretKey` during initialization has no effect.
* Calling `grantToken()` fails with the error `PAM module disabled`.
* Requests do not include the `signature` parameter.

Use a server-side Node.js process to call `grantToken()` and pass the resulting token to the browser client using `setToken()`. If you need Access Manager support in a browser context for an internal or non-public tool, set `PAM_MODULE=enabled` when building a custom bundle with Rollup or Webpack.

### JavaScript Chat SDK enableEventEngine is always on

**Type**: Enhancement

We removed the `enableEventEngine` configuration option from the [JavaScript Chat SDK configuration](https://www.pubnub.com/docs/chat/chat-sdk/build/configuration) reference. The option is now permanently on and cannot be disabled.

If your code sets `enableEventEngine: true`, remove it. The option is no longer accepted. Connection management features that previously required `enableEventEngine: true`, including [connection status listeners](https://www.pubnub.com/docs/chat/chat-sdk/build/features/connection-management), now work without any configuration change.

This is consistent with the behavior introduced in [JavaScript SDK 11.0.0](https://www.pubnub.com/docs/release-notes/2026/april#javascript-sdk-1100) in April, which changed `enableEventEngine` to default to `true` in the base SDK.

### Android ProGuard org.json rule

**Type**: Enhancement

We added a ProGuard/R8 rule for `org.json` to the [Android SDK](https://www.pubnub.com/docs/sdks/android), [Kotlin SDK](https://www.pubnub.com/docs/sdks/kotlin), and [Kotlin Chat SDK](https://www.pubnub.com/docs/chat/kotlin-chat-sdk/build/configuration) setup documentation.

The `org.json` library is provided by the Android framework, but ProGuard/R8 can rename or strip its methods in release builds, causing `NoSuchMethodError` crashes at runtime when the SDK serializes or deserializes JSON. Add the following rule to your ProGuard configuration alongside the existing PubNub rules:

```java
-keepnames class org.json.** {
    *;
}
```

A link to the full ProGuard configuration and troubleshooting guidance is now included directly on the Kotlin SDK publish-and-subscribe API reference page. For crash diagnosis, see the [Kotlin SDK Troubleshooting guide](https://www.pubnub.com/docs/sdks/kotlin/troubleshoot).

### Dart SDK improvements

**Type**: Enhancement

We significantly updated the [Dart SDK](https://www.pubnub.com/docs/sdks/dart) hub page and expanded the [Dart SDK FAQ](https://www.pubnub.com/docs/sdks/dart/faq) with a new entry covering macOS App Sandbox network errors.

The FAQ now explains how to resolve `RequestOtherException` failures on macOS Flutter desktop apps. Apps running inside the App Sandbox require the `com.apple.security.network.client` entitlement in both `DebugProfile.entitlements` and `Release.entitlements` before outbound network calls (including PubNub publish and subscribe) can succeed. Without this entitlement, the SDK cannot establish HTTP connections and all API calls fail before PubNub returns a response.

## AI 🤖

### MCP Server OAuth authentication

**Type**: Enhancement

We updated the [PubNub MCP Server](https://www.pubnub.com/docs/ai/pubnub-mcp-server) setup documentation to reflect the hosted server's OAuth authentication flow.

The hosted MCP Server now handles authentication automatically via OAuth when you authorize your IDE. A PubNub API key is no longer a setup prerequisite for the hosted server, and Node.js no longer needs to be installed separately. The documentation also adds [OpenCode](https://opencode.ai/) as a supported MCP-compatible AI assistant alongside the existing VS Code, Cursor IDE, Claude Code, Claude Desktop, Codex, Codex Desktop, and Gemini CLI setups.

The self-hosted server configuration (running locally via `npx`) continues to use API key authentication.

### Illuminate and migration guide tools

**Type**: Enhancement

We published complete documentation for three MCP Server tools in [Available MCP Tools](https://www.pubnub.com/docs/ai/available-mcp-tools):

* **manage_illuminate** — Create, read, update, and delete Illuminate business objects, metrics, decisions, and queries. Supports listing active decisions, creating metrics with custom aggregation functions, executing Illuminate decisions, and inspecting the action log, all via natural language.
* **get_sdk_migration_guide** — Retrieve version-specific SDK migration guides for upgrading between PubNub SDK versions (Go, Java, JavaScript, Kotlin, PHP, Unity).
* **get_general_migration_guide** — Retrieve platform-wide migration guides for cross-cutting changes such as 256-bit encryption, APNs/FCM push notification updates, Access Manager v3, and deprecated webhooks.

### Insights analytics tool

**Type**: New feature

We added documentation for the `insights` MCP Server tool to [Available MCP Tools](https://www.pubnub.com/docs/ai/available-mcp-tools).

The `insights` tool queries PubNub Insights aggregated analytics for a keyset. It automatically routes to the correct endpoint based on the metric requested:

* `/v2/insights` — aggregated metrics: unique channels, unique users, message counts, device types, and more.
* `/v2/insights/top` — ranked top-N metrics: top channels, top users, top message types.

The tool accepts parameters for metric name, time period, date range, category (for top-N queries), filters, sort order, and limit. The MCP Server now exposes **16 tools across five categories** (previously 15 tools across four categories).

:::note Plan and permissions required
The `insights` tool requires a Service Integration API key with Account-level Insights Read permission and a PubNub Insights Premium plan. Free and Standard plans do not have API access.
:::

## BizOps Workspace 🏢

### Presence documentation improvements

**Type**: Enhancement

We made several improvements to the [Presence](https://www.pubnub.com/docs/general/presence/overview) documentation.

**Generate Leave on TCP FIN or RST** — Corrected the feature description: this option does not generate additional billable events. We also added a clarification that if the client sends an explicit unsubscribe before the connection drops, duplicate leave events are not generated.

**Explicit unsubscribe best practice** — Added a tip recommending explicit SDK unsubscribes over relying solely on TCP-level detection for the most predictable presence behavior. When the SDK changes its channel subscription list, it aborts the existing subscribe request, which can be indistinguishable from a lost connection at the network level and may produce an unnecessary `leave` followed by a `join`.

**HereNow and wildcard patterns** — Added a note clarifying that wildcard channel patterns (such as `sports.*`) are not supported with `hereNow`. To query occupancy across a group of related channels, pass a channel group name instead.

**HereNow and Presence Management exclusions** — Added a note explaining that channels excluded from Presence tracking via [Presence Management](https://www.pubnub.com/docs/bizops-workspace/presence-management) rules return zero occupancy and an empty user list, not an error.