diff --git a/osu.Game/Beatmaps/BeatmapManager.cs b/osu.Game/Beatmaps/BeatmapManager.cs
index 1a2b5eadd9..774a80049b 100644
--- a/osu.Game/Beatmaps/BeatmapManager.cs
+++ b/osu.Game/Beatmaps/BeatmapManager.cs
@@ -352,9 +352,8 @@ namespace osu.Game.Beatmaps
string mapName = reader.Filenames.FirstOrDefault(f => f.EndsWith(".osu"));
if (string.IsNullOrEmpty(mapName))
{
- // Todo: This is temporary for debugging purposes
- var files = reader.Filenames.ToList();
- throw new InvalidOperationException($"No beatmap files found in this beatmap archive. Files ({files.Count}): {string.Join(", ", files)}");
+ Logger.Log($"No beatmap files found in the beatmap archive ({reader.Name}).", LoggingTarget.Database);
+ return null;
}
Beatmap beatmap;
diff --git a/osu.Game/Database/ArchiveModelManager.cs b/osu.Game/Database/ArchiveModelManager.cs
index ac79a8f565..326d042c39 100644
--- a/osu.Game/Database/ArchiveModelManager.cs
+++ b/osu.Game/Database/ArchiveModelManager.cs
@@ -178,7 +178,8 @@ namespace osu.Game.Database
{
try
{
- return Import(CreateModel(archive), archive);
+ var model = CreateModel(archive);
+ return model == null ? null : Import(model, archive);
}
catch (Exception e)
{
@@ -389,7 +390,7 @@ namespace osu.Game.Database
/// Actual expensive population should be done in ; this should just prepare for duplicate checking.
///
/// The archive to create the model for.
- /// A model populated with minimal information.
+ /// A model populated with minimal information. Returning a null will abort importing silently.
protected abstract TModel CreateModel(ArchiveReader archive);
///