diff --git a/lti_consumer/migrations/0013_auto_20210712_1352.py b/lti_consumer/migrations/0013_auto_20210712_1352.py
new file mode 100644
index 0000000000000000000000000000000000000000..ea2047cadbe7e61ba1303a685bb2ee29d9ba5239
--- /dev/null
+++ b/lti_consumer/migrations/0013_auto_20210712_1352.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.2.20 on 2021-07-12 13:52
+
+from django.db import migrations
+import jsonfield.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('lti_consumer', '0012_rename_courseeditltifieldsenabledflag_model'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='lticonfiguration',
+            name='lti_config',
+            field=jsonfield.fields.JSONField(blank=True, default=dict, help_text='LTI configuration data.'),
+        ),
+        migrations.AlterField(
+            model_name='ltidlcontentitem',
+            name='attributes',
+            field=jsonfield.fields.JSONField(),
+        ),
+    ]
diff --git a/requirements/base.in b/requirements/base.in
index 8f799d6776038e68759dc49b45a0ce35529662f5..c2bb242cf6b880fd167988486d0dcbc1e73a5f37 100644
--- a/requirements/base.in
+++ b/requirements/base.in
@@ -13,5 +13,5 @@ pycryptodomex
 pyjwkest
 edx-opaque-keys[django]
 django-filter
-jsonfield2
+jsonfield
 django-config-models         # Configuration models for Django allowing config management with auditing
diff --git a/requirements/base.txt b/requirements/base.txt
index e98e10479c833099ce287dde50945c06d8807bbc..82cf0f22b6811fd36af53b1238363764ab13b0c0 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -21,7 +21,7 @@ django==2.2.24
     #   django-filter
     #   djangorestframework
     #   edx-django-utils
-    #   jsonfield2
+    #   jsonfield
 django-config-models==2.2.0
     # via
     #   -c requirements/constraints.txt
@@ -46,10 +46,8 @@ future==0.18.2
     # via pyjwkest
 idna==3.2
     # via requests
-jsonfield2==3.0.3
-    # via
-    #   -c requirements/constraints.txt
-    #   -r requirements/base.in
+jsonfield==3.1.0
+    # via -r requirements/base.in
 lazy==1.4
     # via -r requirements/base.in
 lxml==4.6.3
diff --git a/requirements/constraints.txt b/requirements/constraints.txt
index d5584b91eaefe7b6844cc135c99f9429aea686ee..510432bb7fda8fbca117b01724900090ee808dc4 100644
--- a/requirements/constraints.txt
+++ b/requirements/constraints.txt
@@ -16,8 +16,5 @@
 # Same as in edx-platform
 djangorestframework<4
 
-# jsonfield2 3.1.0 drops support for python 3.5
-jsonfield2<3.1.0
-
 # Same as in edx-platform
 django-config-models>=1.0.0
diff --git a/requirements/dev.txt b/requirements/dev.txt
index 625e90f65525f0dc16c8bc335080263be0d4bc91..00005cd3ac17f9088b2c25efe83a115def0c1c6a 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -27,7 +27,7 @@ django==2.2.24
     #   djangorestframework
     #   edx-django-utils
     #   edx-i18n-tools
-    #   jsonfield2
+    #   jsonfield
 django-config-models==2.2.0
     # via -r requirements/base.txt
 django-crum==0.7.9
@@ -64,7 +64,7 @@ idna==3.2
     # via
     #   -r requirements/base.txt
     #   requests
-jsonfield2==3.0.3
+jsonfield==3.1.0
     # via -r requirements/base.txt
 lazy==1.4
     # via -r requirements/base.txt
diff --git a/requirements/test.txt b/requirements/test.txt
index 55b1623fc1529d9384e170c357041e9425912e51..d13d97c0223557c8cb800dd3c5c56ffa377f2621 100644
--- a/requirements/test.txt
+++ b/requirements/test.txt
@@ -26,8 +26,6 @@ certifi==2021.5.30
     # via
     #   -r requirements/base.txt
     #   requests
-cffi==1.14.6
-    # via cryptography
 charset-normalizer==2.0.4
     # via
     #   -r requirements/base.txt
@@ -61,7 +59,7 @@ ddt==1.4.2
     #   djangorestframework
     #   edx-django-utils
     #   edx-lint
-    #   jsonfield2
+    #   jsonfield
     #   xblock-sdk
 django-config-models==2.2.0
     # via
@@ -119,20 +117,14 @@ importlib-metadata==4.7.1
     #   twine
 isort==5.9.3
     # via pylint
-jeepney==0.7.1
-    # via
-    #   keyring
-    #   secretstorage
 jinja2==3.0.1
     # via code-annotations
 jmespath==0.10.0
     # via
     #   boto3
     #   botocore
-jsonfield2==3.0.3
-    # via
-    #   -c requirements/constraints.txt
-    #   -r requirements/base.txt
+jsonfield==3.1.0
+    # via -r requirements/base.txt
 keyring==23.1.0
     # via twine
 lazy==1.4
@@ -181,8 +173,6 @@ psutil==5.8.0
     #   edx-django-utils
 pycodestyle==2.7.0
     # via -r requirements/test.in
-pycparser==2.20
-    # via cffi
 pycryptodomex==3.10.1
     # via
     #   -r requirements/base.txt
diff --git a/requirements/travis.txt b/requirements/travis.txt
index 244f69b353d61bd5d110bed32eeb00c3c88908cb..a3202508e2533b85414dff7a342360d421dd83dc 100644
--- a/requirements/travis.txt
+++ b/requirements/travis.txt
@@ -34,10 +34,6 @@ certifi==2021.5.30
     # via
     #   -r requirements/test.txt
     #   requests
-cffi==1.14.6
-    # via
-    #   -r requirements/test.txt
-    #   cryptography
 charset-normalizer==2.0.4
     # via
     #   -r requirements/test.txt
@@ -87,7 +83,7 @@ django==2.2.24
     #   djangorestframework
     #   edx-django-utils
     #   edx-lint
-    #   jsonfield2
+    #   jsonfield
     #   xblock-sdk
 django-config-models==2.2.0
     # via
@@ -149,7 +145,7 @@ idna==3.2
     # via
     #   -r requirements/test.txt
     #   requests
-importlib-metadata==4.7.1
+importlib-metadata==4.6.3
     # via
     #   -r requirements/test.txt
     #   keyring
@@ -158,11 +154,6 @@ isort==5.9.3
     # via
     #   -r requirements/test.txt
     #   pylint
-jeepney==0.7.1
-    # via
-    #   -r requirements/test.txt
-    #   keyring
-    #   secretstorage
 jinja2==3.0.1
     # via
     #   -r requirements/test.txt
@@ -172,10 +163,8 @@ jmespath==0.10.0
     #   -r requirements/test.txt
     #   boto3
     #   botocore
-jsonfield2==3.0.3
-    # via
-    #   -c requirements/constraints.txt
-    #   -r requirements/test.txt
+jsonfield==3.1.0
+    # via -r requirements/test.txt
 keyring==23.1.0
     # via
     #   -r requirements/test.txt
@@ -246,10 +235,6 @@ py==1.10.0
     #   tox
 pycodestyle==2.7.0
     # via -r requirements/test.txt
-pycparser==2.20
-    # via
-    #   -r requirements/test.txt
-    #   cffi
 pycryptodomex==3.10.1
     # via
     #   -r requirements/test.txt
diff --git a/setup.py b/setup.py
index 6114e2d6c8f37653f109dfc4e1a5f5e1d739beb2..288e5d33084f38f567399c668fb3703f55956314 100644
--- a/setup.py
+++ b/setup.py
@@ -49,7 +49,7 @@ with open('README.rst') as _f:
 
 setup(
     name='lti-consumer-xblock',
-    version='3.0.3',
+    version='3.0.4',
     author='Open edX project',
     author_email='oscm@edx.org',
     description='This XBlock implements the consumer side of the LTI specification.',