Django stops recieving/sending MQTT messages after 500 error

I am trying to implement Paho MQTT on Django but Django stops receiving/sending MQTT messages after a 500 error.

I am using Paho MQTT client 1.3.0 along with Django 1.10.8, Python 3.6.2

Here are my MQTT settings:

from django.conf import settings

import paho.mqtt.client as mqtt

SUB_TOPICS = ("device/vlt", "device/auth", "device/cfg", "device/hlt", "device/etracker", "device/pi")

# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, rc):
    print("Connected with result code " + str(rc))

    # Subscribing in on_connect() means that if we lose the connection and
    # reconnect then subscriptions will be renewed.
    for topic in SUB_TOPICS:
        client.subscribe(topic, qos=0)

# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
    print(msg.topic + " " + str(msg.qos) + " " + str(msg.payload))

def on_publish(mosq, obj, mid):
    print("mid: " + str(mid))

def on_subscribe(mosq, obj, mid, granted_qos):
    print("Subscribed: " + str(mid) + " " + str(granted_qos))

def on_log(mosq, obj, level, string):

def on_disconnect(client, userdata, rc):
    if rc != 0:
        print("Unexpected disconnection: rc:" + str(rc))
        print("Disconnected: rc:" + str(rc))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.on_publish = on_publish
client.on_subscribe = on_subscribe
client.on_disconnect = on_disconnect

client.username_pw_set(username, password)

class CoreConfig(AppConfig):
    name = 'untitled.core'
    verbose_name = "Core"

    def ready(self):
        from . import mqtt

Code inspiration: Paho MQTT client connection reliability (reconnect on disconnection)