On this page

Documentation Release Notes - June 2026

June brought two major SDK releases, extended HTTP/2 documentation to five SDKs, and launched PubNub agent skills for AI-assisted development.

The most significant SDK changes are JavaScript SDK 12.0.0, which requires Node.js 22 and replaces the transport layer, and Go SDK 9.0.0, which requires Go 1.25 and updates the module path to github.com/pubnub/go/v9. Both include breaking changes — review the corresponding migration guide before upgrading. We also clarified the start and end parameter semantics in fetchMessages, adding a warning callout and visual diagram across every SDK storage and playback page.

We extended HTTP/2 configuration documentation to the Go, Rust, Python, C#, and Unity SDKs and published the first Rust SDK logging page, continuing the work started in May.

We also added log content configuration for the Java and Kotlin SDKs, corrected Functions per-execution operation limits, and updated the Service Integrations permissions table to document that creating a keyset requires "Secret key — Read" permission.

General 🛠️

Functions operation limits corrected

Type: Update

In Functions, each operation category has its own per-execution limit — they are not combined. The correct defaults are:

CategoryLimit
XHR requests
5
KV store operations
10
Vault reads
10
PubNub API requests
10
Publish/fire requests
10

We also corrected the package revision deployment limit, which was previously understated. The correct limits are 10 keysets on the free tier and 500 keysets on a paid plan.

Keyset creation permissions

Type: Update

When creating a keyset in Service Integrations — at the Account or App level — two API key permissions are required, not one:

  • Keyset — Read & write: to create, update, and delete the keyset itself.
  • Secret key — Read: to retrieve the secret key of the newly created keyset.

If your API key has only "Keyset — Read & write" but not "Secret key — Read," keyset creation will fail.

SDKs 📦

JavaScript SDK 12.0.0

Type: Enhancement

Three breaking changes ship with JavaScript SDK 12.0.0: a higher Node.js requirement, a new transport layer, and removal of the bundled React Native URL polyfill. These affect applications running on Node.js 18 or 20, using SOCKS or PAC-file proxies, or relying on the automatic polyfill.

AreaJavaScript SDK 11.x.xJavaScript SDK 12.0.0
Minimum Node.js version
18
22
Node.js transport
node-fetch + proxy-agent
undici
SOCKS proxy support
Yes
No
PAC-file proxy support
Yes
No
Auto-proxy from environment variables
Yes
No
HTTP/HTTPS proxy
Yes
Yes
React Native URL polyfill
Bundled automatically
Must be installed explicitly

Node.js version

Node.js 18.x and 20.x are no longer supported. Upgrade to Node.js 22 or later before upgrading the SDK.

Transport layer

The Node.js transport now uses undici instead of node-fetch, proxy-agent, and form-data. HTTP and HTTPS proxy support continues to work via undici's ProxyAgent. SOCKS4, SOCKS5, and PAC-file proxies are no longer supported and have no replacement in 12.0.0.

Environment variable proxy resolution

In v11.x.x, proxy-agent automatically resolved proxy settings from standard environment variables. This no longer happens in v12.0.0. Replace automatic resolution with an explicit call to setProxy().

React Native URL polyfill

The polyfill is no longer bundled by the SDK. React Native projects must install it explicitly before initializing PubNub.

See the JavaScript SDK 12.0.0 migration guide for full details and migration steps.

Go SDK 9.0.0

Type: Enhancement

The only breaking changes in Go SDK 9.0.0 are a higher Go version requirement (1.25) and an updated module path (github.com/pubnub/go/v9). The public API surface is unchanged.

Feature/AreaGo SDK 8.x.xGo SDK 9.0.0
Minimum Go version
1.18
1.25
Module path
github.com/pubnub/go/v8
github.com/pubnub/go/v9
Public API
No changes

Go version

Go SDK 9.0.0 requires Go 1.25 or later. Attempting to build against github.com/pubnub/go/v9 with an older toolchain produces a build error. Run go version to confirm your toolchain version before upgrading.

Module path

All import statements and go.mod entries must be updated from github.com/pubnub/go/v8 to github.com/pubnub/go/v9. The migration guide includes a one-line sed command for macOS and Linux to rewrite all imports across a codebase at once.

Go SDK 8.x.x support

Go SDK 8.x.x continues to work if you are not ready to upgrade. Version 8.x.x receives only critical security fixes going forward.

See the Go SDK 9.0.0 migration guide for full migration steps.

Message history timetoken parameters

Type: Enhancement

fetchMessages searches backward through time — newest to oldest — making start and end behave opposite to their intuitive meaning. A warning callout and diagram clarifying this were added to the Message Persistence page and all SDK storage and playback API reference pages.

ParameterMeaning
start
Newer boundary (higher timetoken), exclusive — message at this timetoken is not included
end
Older boundary (lower timetoken), inclusive — message at this timetoken is included

When you supply both parameters, start must be a higher timetoken than end. Results are always returned in oldest-first order.

The same clarification was added to all Chat SDK message history pages.

HTTP/2 SDK configuration

Type: Enhancement

Five more SDKs — Go, Rust, Python, C#, and Unity — now have HTTP/2 configuration documentation, continuing the work started in May.

SDKWhat was added
Go
HTTP/2 configuration and protocol-version logging.
Rust
HTTP/2 configuration and a new Rust SDK logging page.
C#
EnableHttp2 parameter (default: true); falls back to HTTP/1.1 if unsupported.
Unity
EnableHttp2 parameter; automatic on Unity 6.5+, requires YetAnotherHttpHandler on older versions.
Python and asyncio
HttpxRequestHandler (default) auto-negotiates HTTP/2; RequestsRequestHandler uses HTTP/1.1 only.

For a list of origins that support HTTP/2, see Data Transport.

Java and Kotlin SDK log content configuration

Type: Enhancement

New LogContentConfig documentation on the Java SDK logging and Kotlin SDK logging pages covers how much content the SDK renders into each debug log record. Configure it on PNConfiguration.Builder via logContentConfig().

LogContentConfig exposes two properties:

PropertyDescription
loggedMessageContentMaxBytes
Default:
500 bytes
Maximum byte length of message content rendered in publish, signal, and subscribe debug log entries. Set to 0 to suppress message content entirely.
loggedHttpResponseMaxBytes
Default:
2000 bytes
Maximum byte length of the HTTP response body in network-response log entries. Set to 0 to suppress.
Production recommendations

The default caps are intentional. Avoid setting either property to Integer.MAX_VALUE in production unless you control log storage costs.

AI 🤖

PubNub agent skills

Type: New feature

A new PubNub agent skills page documents a collection of 22 skills for building real-time PubNub applications with AI coding assistants.

Each skill provides focused guidance, code examples, and production-ready patterns for a specific PubNub capability. Once installed, skills are automatically applied by compatible AI coding assistants when you describe what you want to build. Compatible assistants include Claude Code, Cursor IDE, VS Code with GitHub Copilot, and Codex.

The collection is organized into three tiers:

TierSkillsWhat it covers
Foundational
5
Core platform capabilities: pub/sub, presence, security, Chat SDK, scale
Cross-cutting
9
Reliability, observability, and advanced features: Functions, history, App Context, keyset management, Illuminate, Events & Actions, and more
Vertical
8
Domain-specific guidance for common real-time application types: live auctions, multiplayer gaming, telemedicine, sports scoreboards, delivery tracking, and more

Install the collection in your project using the Vercel skills CLI:

npx skills add pubnub/skills

Or search the Tessl registry:

npx tessl skill search pubnub

PubNub skills are designed to work alongside the PubNub MCP Server. Skills provide offline guidance and code patterns; the MCP Server adds live account access for creating keysets, publishing messages, and querying analytics in real time.