diff --git a/source/blender/draw/engines/eevee/eevee_volumes.c b/source/blender/draw/engines/eevee/eevee_volumes.c
index 26ac449807377a540d4c30d94b2b8c5c6a19b466..0c0ffa391463a5663e617682209f2b1cb3f6c75a 100644
--- a/source/blender/draw/engines/eevee/eevee_volumes.c
+++ b/source/blender/draw/engines/eevee/eevee_volumes.c
@@ -472,17 +472,20 @@ void EEVEE_volumes_cache_object_add(EEVEE_ViewLayerData *sldata, EEVEE_Data *ved
 
 	DRWShadingGroup *grp = DRW_shgroup_material_empty_tri_batch_create(mat, vedata->psl->volumetric_objects_ps, sldata->common_data.vol_tex_size[2]);
 
+	/* If shader failed to compile or is currently compiling. */
+	if (grp == NULL) {
+		return;
+	}
+
 	/* Making sure it's updated. */
 	invert_m4_m4(ob->imat, ob->obmat);
 
 	BKE_mesh_texspace_get_reference((struct Mesh *)ob->data, NULL, &texcoloc, NULL, &texcosize);
 
-	if (grp) {
-		DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
-		DRW_shgroup_uniform_mat4(grp, "volumeObjectMatrix", (float *)ob->imat);
-		DRW_shgroup_uniform_vec3(grp, "volumeOrcoLoc", texcoloc, 1);
-		DRW_shgroup_uniform_vec3(grp, "volumeOrcoSize", texcosize, 1);
-	}
+	DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
+	DRW_shgroup_uniform_mat4(grp, "volumeObjectMatrix", (float *)ob->imat);
+	DRW_shgroup_uniform_vec3(grp, "volumeOrcoLoc", texcoloc, 1);
+	DRW_shgroup_uniform_vec3(grp, "volumeOrcoSize", texcosize, 1);
 
 	/* Smoke Simulation */
 	if (((ob->base_flag & BASE_FROMDUPLI) == 0) &&