diff --git a/io_scene_fbx/import_fbx.py b/io_scene_fbx/import_fbx.py
index 319c49728a91dd26488c6a3cbf3396c5f95d57f0..ec16b6d1aab2cd7b04da814bd9017cc2a73cc848 100644
--- a/io_scene_fbx/import_fbx.py
+++ b/io_scene_fbx/import_fbx.py
@@ -1079,6 +1079,12 @@ def blen_read_geom_layer_color(fbx_obj, mesh):
 
             # Always init our new layers with full white opaque color.
             color_lay = mesh.vertex_colors.new(name=fbx_layer_name, do_init=False)
+
+            if color_lay is None:
+                print("Failed to add {%r %r} vertex color layer to %r (probably too many of them?)"
+                      "" % (layer_id, fbx_layer_name, mesh.name))
+                continue
+
             blen_data = color_lay.data
 
             # some valid files omit this data
diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_mesh.py b/io_scene_gltf2/blender/imp/gltf2_blender_mesh.py
index 09ec325b8bac1be7650353199acdfbccad74fb20..0311c3b03f47b2d7c0d2f6a3aa69864ba994238b 100755
--- a/io_scene_gltf2/blender/imp/gltf2_blender_mesh.py
+++ b/io_scene_gltf2/blender/imp/gltf2_blender_mesh.py
@@ -275,12 +275,22 @@ def do_primitives(gltf, mesh_idx, skin_idx, mesh, ob):
     for uv_i in range(num_uvs):
         name = 'UVMap' if uv_i == 0 else 'UVMap.%03d' % uv_i
         layer = mesh.uv_layers.new(name=name)
+
+        if layer is None:
+            print("WARNING: UV map is ignored because the maximum number of UV layers has been reached.")
+            break
+
         layer.data.foreach_set('uv', squish(loop_uvs[uv_i]))
 
     for col_i in range(num_cols):
         name = 'Col' if col_i == 0 else 'Col.%03d' % col_i
         layer = mesh.vertex_colors.new(name=name)
 
+        if layer is None:
+            print("WARNING: Vertex colors are ignored because the maximum number of vertex color layers has been "
+                  "reached.")
+            break
+
         layer.data.foreach_set('color', squish(loop_cols[col_i]))
 
     # Skinning