PythonNativeNativeTwistedTornadoAsyncioPython V4 SDK Troubleshooting Guide


These docs are for PubNub 4.0 for Python V4 which is our latest and greatest! For the docs of the older versions of the SDK, please check PubNub 3.0 for Python, PubNub 3.0 for Python-Tornado and PubNub 3.0 for Python-Twisted.

If you have questions about the PubNub for Python SDK, please contact us at

import pubnub
import logging

pubnub.set_stream_logger('pubnub', logging.DEBUG)
from pubnub import PubNub


In case of sync() calls errors will be wrapped out by either Envelope or PubNubAsyncioException which both implement two object fields:

  • e.result - a request result object in case of success, otherwise None
  • e.status - PNStatus object with useful information about the finished request. You may check if it was an error or a success using e.is_error() helper.
    e = pubnub.publish().channel("my_channel").message("hello!").sync()
except PubNubException as e:
    print("Error %s" % str(e))
    if status is not None:
        print("Error category #%d" % e.status.category)

async() call lets you check for errors using status.is_error() helper:

def callback(result, status):
    if status.is_error():
        print("Error %s" % str(status.error_data.exception))
        print("Error category #%d" % status.category)